post上传出现41005错误缺少多媒体文件怎么解?求大神指教post格式有什么问题。

格式如下:
POST http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=SNq13fOvw6YYV-J0lkskiuF6bQWpluwcMRKJOpRis468adwVpp6BPwsUPYXCRr506ss65R3UgYi15V5taZTL--3T-k_5yXQFlZofCedqFIgsBebmEoSQqHBgmLUFSGwVOOLiADABBY&type=voice HTTP/1.1
"Accept: /\r\n"
"Accept-language: zh-CN\r\n"
"Host: file.api.weixin.qq.com\r\n"
"Content-Type: multipart/form-data; boundary=-----------------------------71b372eb000e2\r\n"
"\r\n"
"-------------------------------71db372eb000e2\r\n"
"Content-Disposition: form-data; name=\"media\"; filename=\"1.jpeg\"\r\n"
"Content-Type: image/jpeg\r\n"
1.jpeg的数据流
"-------------------------------71b372eb000e2--\r\n"

2个回答

你用得什么框架上传的

楼上一样 你用的什么框架?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求大神告知okhttp的post请求怎么携带cookie
求大神告知okhttp的post请求怎么携带cookie 求大神告知okhttp的post请求怎么携带cookie 谢谢!!!!!!
微信公众号上传多媒体文件接口用JAVA怎么实现
![图片说明](https://img-ask.csdn.net/upload/201504/18/1429350293_722392.png) 根据图片的描述是通过发送https请求上传图片。微信公众号提供的文档是通过curl命令来实现发送https post请求,但是我现在的程序是通过java程序来发送https post请求。以下是我的3个问题: 1、既然是发送https post请求上传图片,java应该也可以实现,我只实现过java https post的简单请求,没有实现过java https post图片上传。有大神能帮帮我吗? 2、既然微信公众号文档上说是通过curl来发送请求,那java是否提供模拟curl来发送https post请求来实现图片上传。如果java提供,有大神能帮帮我吗? 3、或者有没有谁实现过微信公众号以上截图描述的用java实现的多媒体文件上传功能,有实现过的话,共享以下代码啊!本人感激不尽!。 求大神帮帮忙!
求大神告知post请求怎么携带cookie
API需要登录账号后携带cookie使用 求大神告知 怎么携带cookie实用!!!! 谢谢!!!
jbpm上传打包好的zip文件,然后上传完说发布流程文件失败,求大神解答
工具:MyEclipse10.0 jbpm4.4 数据库版本是Mysql5.1 下面是jsp页面代码 jsp页面代码 <%@page import="java.util.zip.ZipInputStream"%> <%@page import="java.io.File"%> <%@page import="java.io.FileInputStream"%> <%@page import="java.io.InputStream"%> <%@page import="org.jbpm.api.RepositoryService"%> <%@page import="org.jbpm.api.Configuration"%> <%@page import="org.jbpm.api.ProcessEngine"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>上传</title> <script type="text/javascript"> function readFile(obj) { document.getElementById("file").value = obj.value; } </script> </head> <body> <% request.setCharacterEncoding("UTF-8"); String deployFile = request.getParameter("processDef"); if (deployFile != null && deployFile != "") { //必须使用的,流程引擎 ProcessEngine processEngine = Configuration.getProcessEngine(); RepositoryService repositoryService =processEngine.getRepositoryService(); try { String file = deployFile; //将ZIP文件封转到IO流里 InputStream is = new FileInputStream(new File(file)); ZipInputStream zis = new ZipInputStream(is); //将ZIP流程文件发布到pvm(流程虚拟机中,他会把ZIP包中的xml文件和png图片存储到数据库中) repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy(); zis.close(); is.close(); out.println("发布流程成功<br />"); out.println("<a href='task-write.jsp'>返回</a><br />"); } catch (Exception e) { e.printStackTrace(); out.println("发布流程失败"); } } %> <font color="red">可直接发布zip文件</font><br /> <form name="form1" method="post" action="deploy.jsp"> &nbsp;&nbsp;&nbsp;&nbsp; <label>发布流程文件<input type="file" id="file1" name="processDef" onchange="readFile(this)"/></label>&nbsp;&nbsp;<br/> <label><input type="submit" name="Submit" value="提交"></label><br/> </form> </body> </html> 要上传的流程文件 xml代码 <?xml version="1.0" encoding="UTF-8"?> <process name="leave" xmlns="http://jbpm.org/4.4/jpdl"> <start g="276,97,147,99" name="start1"> <transition to="申请"/> </start> <decision expr="#{day > 3 ? '老板审批' : '结束'}" g="282,376,79,78" name="exclusive1"> <transition g="-30,-13" name="结束" to="end1"/> <transition g="-2,-20" name="老板审批" to="老板审批"/> </decision> <end g="286,466,85,82" name="end1"/> <task assignee="#{owner}" g="256,174,98,55" name="申请"> <transition to="经理审批"/> </task> <task candidate-groups="manager" g="257,270,99,59" name="经理审批"> <transition g="-33,-11" name="批准" to="exclusive1"/> <transition g="3,-8" name="驳回" to="申请"/> </task> <task candidate-groups="boss" g="364,422,80,47" name="老板审批"> <transition to="end1"/> </task> </process> 上传完失败后,出现下面错误 二月 24, 2016 11:48:26 上午 org.jbpm.internal.log.Jdk14Log debug 详细: ----- beginning hibernate tx 13104183 -------------------------------------------------------- 二月 24, 2016 11:48:26 上午 org.hibernate.jdbc.util.SQLStatementLogger logStatement 详细: select propertyim0_.KEY_ as KEY1_2_, propertyim0_.VERSION_ as VERSION2_2_, propertyim0_.VALUE_ as VALUE3_2_ from JBPM4_PROPERTY propertyim0_ limit ? 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeGet 非常详细: returning 'next.dbid' as column: KEY1_2_ 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeGet 非常详细: returning '0' as column: VERSION2_2_ 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeGet 非常详细: returning '1' as column: VALUE3_2_ 二月 24, 2016 11:48:26 上午 org.hibernate.jdbc.util.SQLStatementLogger logStatement 详细: select propertyim0_.KEY_ as KEY1_2_0_, propertyim0_.VERSION_ as VERSION2_2_0_, propertyim0_.VALUE_ as VALUE3_2_0_ from JBPM4_PROPERTY propertyim0_ where propertyim0_.KEY_=? 二月 24, 2016 11:48:26 上午 org.hibernate.type.NullableType nullSafeSet 非常详细: binding 'db.version' to parameter: 1 二月 24, 2016 11:48:26 上午 org.jbpm.internal.log.Jdk14Log info 信息: jBPM version info: library[4.4-SNAPSHOT], schema[null] 二月 24, 2016 11:48:26 上午 org.jbpm.internal.log.Jdk14Log debug 详细: ----- committing hibernate tx 3988171 ------------------------------------------------------- java.io.FileNotFoundException: leave.zip (系统找不到指定的文件。) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:146) at org.apache.jsp.deploy_jsp._jspService(deploy_jsp.java:105) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) 求大神帮忙看看。。。
模拟post请求,求大神解决
在当前页面携带参数向当前页面url提交post请求,为什么获取到的页面内容还是当前页面,并且header里的location还是当前页面的位置,使用抓包工具看到的location是其他位置,求大神帮忙!
Delphi Soap消息头文件不对,求大神帮忙解决!
delphi引入webservice的wsdl后,直接调用其中方法,报错soap消息头文件不对。 同事JAVA的代码: val request = Request.Builder() .url(url) .post(RequestBody.create(MediaType.parse("text/xml;charset=UTF-8"), xmlData)) .header("Content-Type", "text/xml; charset=UTF-8") .addHeader("SOAPAction", “http://webservice.common.yinhai.com/callBusiness”) .build() delphi中怎么操作呢,求大神帮忙看看。
我想在linux c里面写一个post请求,求大神
需求是,给短信服务器发送一个post,然后会收到短信,求大神帮我实现一下。。。curl或者socket都可以。。。
post发送数据返回页面缺少内容
post发送的数据一样,但是返回的内容缺少一条参数信息,请求头一样,postdata一样,referurl一样,cookie也携带了,但是请求过后就是死活没有时间,时间参数也发送过去了,就是请求不来,还是请求头出现问题了么, 求大神开解,
post上传文件,接收到的文件包含消息头
项目使用中标普华的插件打开文档(相当于wps),可以正常打开,内容显示没问题,点击保存上传到服务器后,文件内容就不能正常显示了,查看了一下,是多了post上传文件时的文件头,现在的问题是怎么去掉这个文件头,或者有什么其他解决办法,使文件内容正常显示。已经验证过了,去掉那段文件头是可以正常显示文件内容的,求教各位大神!谢谢
ajax post问题,求大神帮忙解决
求大神帮忙解析这个api 中的cookies,默认phone_number为123456,password 为123456![图片说明](https://img-ask.csdn.net/upload/201511/24/1448297172_353361.png)
python restful api怎么实现多线程,求大神解答!!!
python restful api怎么实现多线程多进程,求大神解答!!! 就是我看到多线程的例子都是t = threading.Thread(target=函数) 然后t.start启动线程,那如果是restful 写的api呢,总不能写成 t = threading.Thread(target=类名.get或者post吧)
关于POST上传一个.gz文件的报文编码问题
各位大神,小弟有一个问题求助,用抓包工具看到上传的POST报文是上传一个.gz文件,但是报文里好像不是十六进制的编码,没有找到gz文件的开头1f8b标志,请教大神,这个是什么格式的编码? POST /operation/sgk/upload HTTP/1.1 Content-Length: 18592 Content-Type: application/x-www-form-urlencoded Host:tengo.com:8081 Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4) dataarray=%5B%7B%22filename%22%3A%22A_testmore1.gz%22%2C%22
java程序怎么发送带有文字和文件的post请求,并且返回文字和文件
rt,本人在服务器上写了一个servlet来接收post请求,用网页的form表单测试了一下可以同时接收文本框的内容和文件的上传,但是我想用java程序来发送这个post请求,查了很多,要么只有文本或者只有文件传输,没有同时传送文本和文件的,还有我想服务器返回给客户端的里面也同时包含文本或者文件,怎么做,各位大神给个例子可好
swfuplaod上传多文件是使用多次post提交,怎么可以成为一次提交上传多个文件
swfuplaod上传多文件是使用多次post提交,怎么可以成为一次提交上传多个文件
android上传文件,在魅族mx5和红米note1上无法上传,求大神指点啊
使用的xutils3.3.36,在上传文件的时候,别的机型都可以上传, 但是在魅族MX5和小米note1上无法上传成功,异常时连接超时 这是上传的代码 ``` org.xutils.http.RequestParams params = new org.xutils.http.RequestParams(Constants.UPLOAD_PIC); params.setConnectTimeout(15000); params.setMultipart(true); params.addBodyParameter("picData", new File(s1)); x.http().post(params, new Callback.ProgressCallback<String>() { @Override public void onWaiting() { } @Override public void onStarted() { } @Override public void onLoading(final long l, final long l1, boolean b) { Log.e("total", l + ""); Log.e("current", l1 + ""); // Toast.makeText(ChatActivity.this,"正在上传",Toast.LENGTH_SHORT).show(); if ("2".equals(type)) { if (upLoadLinstener != null) { // Toast.makeText(ChatActivity.this,"上传回调",Toast.LENGTH_SHORT).show(); ThreadUtils.runOnUiThread(new Runnable() { @Override public void run() { upLoadLinstener.onUpLoadProgerss((int) ((l1 / (float) l) * 100), positiones); } }); } } else { if (upLoadFileLinstener != null) { upLoadFileLinstener.onUpLoadFileProgerss(l, l1, positiones); } } } @Override public void onSuccess(String s) { String json = s; if ("2".equals(type)) { if (upLoadLinstener != null) { // Toast.makeText(ChatActivity.this,"正在成功",Toast.LENGTH_SHORT).show(); upLoadLinstener.OnUpLoadEnd("发送成功", items); } } else { if (upLoadFileLinstener != null) { upLoadFileLinstener.OnUpLoadFileEnd("发送成功", progress_items); } } Message message = new Message(); if ("2".equals(type)) { message.what = UPLOADPIC; } else if ("3".equals(type)) { message.what = UPLOADFILE; } message.obj = json; handler1.sendMessage(message); if ("".equals(json)) { // Toast.makeText(ChatActivity.this, "上茶un岁", Toast.LENGTH_SHORT).show(); } Log.e("上传图片的json", "ssssssssssssssssssssssss" + json); } @Override public void onError(Throwable throwable, boolean b) { // Toast.makeText(ChatActivity.this, "发送失败,重新发送", Toast.LENGTH_SHORT).show(); if ("2".equals(type)) { if (upLoadLinstener != null) { upLoadLinstener.OnUpLoadEnd("发送失败", items); } Log.e("上传图片失败", throwable.toString()); // HttpException httpEx = (HttpException) throwable; // int responseCode = httpEx.getExceptionCode(); // Log.e("网络错误responseCode", responseCode+"网络错误"); Toast.makeText(ChatActivity.this, throwable.toString() + "", Toast.LENGTH_SHORT).show(); } } @Override public void onCancelled(CancelledException e) { } @Override public void onFinished() { } }); ``` 求大神指点,看哪里有问题了
android http 文件上传遇见的难题!!!求大神指点!!!
要做一个大文件分块上传的功能,多个文件打包成zip,zip包中有个txt文件用来存放文件信息。 我是用FileInputStream 读取文件,根据服务端给的接口要求,每次读7K,读完一次就把装了7K文件的byte[] 转成Base64字符串,然后post传给服务端,传成功后开始传第二个小块..... 现在的问题是: 当文件小于7K,也就是一次就能读完的时候,文件能转成正确的Base64字符串,传给服务端后也能正常解压。但是,当文件大于7K,需要分块读取的时候,每次读取的文件转成的Base64字符串似乎有问题(7K不是3的整数倍,所以转成Base64后,字符串应该是以=结尾的,实际上,文件小于7K的时候,转成的Base64字符串就是=结尾),所有文件块传给服务端后,服务端合并成zip文件,但是解压不了,我用工具解压出来里面的文件有的是正常的,有的是坏的。 传过去之前的zip文件是完全正常的。 我一直以为是byte[]转Base64的时候存在问题,可是用了各种开源Base64库都是一样的。 下面贴上代码,希望能得到帮助!谢谢! 1. /** * 文件上传 */ private void uploadphoto() { try { if (!uploadDir.exists()) { uploadDir.mkdir(); } //****************************图片文件的整理 zipfile = new File(zipfileDir); if (!zipfile.exists()) { zipfile.createNewFile(); } FileOutputStream f = new FileOutputStream(zipfile); CheckedOutputStream csum = new CheckedOutputStream(f, new Adler32());// 输出校验流,采用Adler32更快 ZipOutputStream outputStream = new ZipOutputStream(csum);//创建压缩输出流 String[] fileName = new String[imageArrayList.size()]; String[] description = new String[imageArrayList.size()]; List<File> list = new ArrayList<File>(); File imageFile = null; for (int i = 0; i < imageArrayList.size(); i++) { fileName[i] = imageArrayList.get(i).get(EasyGridView.TEXT); description[i] = imageArrayList.get(i).get(EasyGridView.DESCRIPTION); if (null == description[i]){ description[i] = ""; } imageFile = new File(imageArrayList.get(i).get(EasyGridView.IMAGE)); list.add(imageFile); } if (file.exists()){//如果文件存在,就删除后重新创建 data.txt文件的处理 file.delete(); file.createNewFile(); } else { file.createNewFile(); } if (null != spinnerSelectedStr && !"".equals(spinnerSelectedStr.trim())) { if (spinnerSelectedStr.equals("按时完成")) { finishType = 1; } else if (spinnerSelectedStr.equals("预计按时完成")) { finishType = 2; } else if (spinnerSelectedStr.equals("预计延期完成")) { finishType = 3; } } UploadInfo uploadInfo = new UploadInfo(); uploadInfo.setComment(comment); uploadInfo.setFinishType(finishType); uploadInfo.setPicMemos(description); uploadInfo.setPicNames(fileName); uploadInfo.setTaskType(1); Gson gson = new Gson(); String json = gson.toJson(uploadInfo); FileUtils.getFile(json.toString().getBytes(), file); list.add(file);//把data.txt和图片放到一个list里方便打包 FileUtils.zipFile(list, outputStream/*, zipfileDir*/); if (zipfile.length()%(7*1024) == 0){ blockSize = (int) (zipfile.length()/(7*1024)); }else { blockSize = (int) (zipfile.length()/(7*1024)) +1; } uploadLittleFile(/*fis*/); } catch (Exception e) { e.printStackTrace(); } } /** * 上传小块文件 */ private void uploadLittleFile(){ try { if (zipfile.exists()/* && fis != null*/){//如果文件存在,即,打zip包成功 1k=1024bit fis = new FileInputStream(zipfile); byte[] buffer = new byte[7 * 1024]; int length; while (-1 != (length = fis.read(buffer))){ byteString = new BASE64Encoder().encode(Arrays.copyOf(buffer,length)); LogUtil.d("file string",byteString); PhotoApi.uploadPhoto(PreNotifyDetailActivity.this, address, filename, byteString, blockIndex, /*handler,*/new UploadCallBack() { @Override public void onGetResult(int code) throws JSONException { //一个序号执行成功后 才开始执行下一个序号 blockIndex++; if (blockIndex == blockSize && submitTimes == 0){//在这里执行任务包 blockIndex = 0;//全部传完后,归零 submitTimes++; LogUtil.d("dotaskpackage","最后一块传完"); PhotoApi.doTaskPackage(PreNotifyDetailActivity.this,address,filename,new UploadCallBack(){ @Override public void onGetResult( int code) throws JSONException{ LogUtil.d("dotaskpackage","提交成功!"); blockIndex = 0; len = 0; zipfile.delete();//删除文件 file.delete(); whileflag = true; isNotLastTime = true; lastLength = 0; littleFlag = true; try { fis.close(); }catch (Exception e){ e.printStackTrace(); } finish();//完全上传成功后,关闭这个界面 } @Override public void onFailureResult(int code){ if (code == 204){ LogUtil.d("dotaskpackage","zip包解压后data.txt的内容为空! 204"); blockIndex = 0; len = 0; zipfile.delete();//删除文件 file.delete(); whileflag = true; isNotLastTime = true; lastLength = 0; littleFlag = true; // uploadphoto(); // uploadLittleFile(fis); }else if (code == 400){ LogUtil.d("dotaskpackage","任务解读失败,同时删除zip包! 400"); blockIndex = 0; len = 0; zipfile.delete();//删除文件 file.delete(); whileflag = true; isNotLastTime = true; lastLength = 0; littleFlag = true; // uploadphoto(); // uploadLittleFile(fis); }else if (code == 404){ LogUtil.d("dotaskpackage","文件未找到或者zip包解压后data.txt文件未找到! 404"); blockIndex = 0; len = 0; zipfile.delete();//删除文件 file.delete(); whileflag = true; isNotLastTime = true; lastLength = 0; littleFlag = true; // uploadphoto(); // uploadLittleFile(fis); } } }); } // uploadLittleFile(); } @Override public void onFailureResult(int code) { if (code == 400){//重新上传本序号 // len -= length;//已读长度要减去length PhotoApi.uploadPhoto(PreNotifyDetailActivity.this, address, filename, byteString, blockIndex, /*handler,*/new UploadCallBack() { @Override public void onGetResult(int code) throws JSONException { // ToastUtil.showMessage(PreNotifyDetailActivity.this,"重传本序号成功"); LogUtil.d("dotaskpackage","重传本序号成功"); } @Override public void onFailureResult( int code) { // ToastUtil.showMessage(PreNotifyDetailActivity.this,"重传本序号失败"); LogUtil.d("dotaskpackage","重传本序号失败"); } }); }else if (code == 404){//重头开始传 blockIndex = 0; len = 0; uploadphoto(); } } }); } finish(); }else{ // ToastUtil.showMessage(PreNotifyDetailActivity.this, "提交失败,请重试"); } }catch (Exception e){ e.printStackTrace(); }finally { try { if (null != fis) fis.close(); fis = null; }catch (Exception e){ e.printStackTrace(); } } }
libcurl Post 方法上传文件求助!
Hi, 我在我的虚拟机上编译好了libcurl库,然后参照列程写了个简单的http post上传文件。 在构建form表单的时候,如果把参数设置为CURLFORM_FILE 并输入对应的文件名,可以再服务器(HFS)指定的文件路径下看到我上传的文件。 但我要使用libcurl的平台没有文件系统,所以就打算用CURLFORM_BUFFER参数来设置数据区。结果这个能够上传,可是不能再文件路径下看到这个文件。 HFS的上传权限打开了的。 对比两种方式的wireshark包,发现在Content-Disposition这个请求头后面的filename没指定。 于是用curl_slist_append却手动设定这个值为我想要的任意名称,问题又来了,正常的流程中,filename这个参数 是添加在MIME Multipart Media后面的。但手动添加的curl_list却在Hypertext Transfer Procotol后面。这下查找了好久的资料也没看到怎么处理,网上各位大神弄的都是一个文件上传到另一个文件的方式。 请问谁有经验,麻烦解惑,谢谢! 上传测试源代码和两个wireshark截图 success.bmp(直接传入file方式,可以创建文件的截图)fail.bmp(用缓冲区地址作为数据输入,不可以创建制定的文件) main.c 测试程序 没看到哪儿上传附件,我发个链接,谢谢!http://pan.baidu.com/s/1ntAc6ql
C#编写的 wcf服务对流文件的处理 求大神帮指出问题在哪
服务契约: [OperationContract] [WebInvoke( UriTemplate = "RegistMember/?MemberID={MemberID}", //RequestFormat = WebMessageFormat.Json, //ResponseFormat = WebMessageFormat.Json, //BodyStyle = WebMessageBodyStyle.WrappedRequest Method = "POST")] bool RegistMember(System.IO.Stream stream, int MemberID); 服务内容: public bool RegistMember(System.IO.Stream stream, int MemberID) { try { string folder = System.Web.Hosting.HostingEnvironment.MapPath("~/RegistPhotos"); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder);//没有文件夹 创建文件夹 } string path = Path.Combine(folder, MemberID.ToString() + ".jpg");//文件夹路径 using (var ms = new MemoryStream()) { stream.CopyTo(ms); ms.Position = 0; Encoding encoding = System.Text.Encoding.UTF8; var reader = new StreamReader(ms, encoding); var headerLength = 0; //读第一行,一般表单头标志是带有“-----”字符的例如: string firstLine = reader.ReadLine(); if (firstLine.Contains("--")) { headerLength += encoding.GetBytes(firstLine).Length + 2; //读第二行,第二行还可以获得上传文件的名字 var secondLine = reader.ReadLine(); headerLength += encoding.GetBytes(secondLine).Length + 2; //var fileName = new System.Text.RegularExpressions.Regex("filename=\"(?<fn>.*)\"").Match(secondLine).Groups["fn"].Value; //可能还有辅助信息,把这些行都读完,一直到一行空 下面的是文件的内容 while (true) { var line = reader.ReadLine(); if (line == null) break; //加2是换行符 headerLength += encoding.GetBytes(line).Length + 2; if (line == "") break; } } ms.Position = headerLength;//文件的开始位置 //在文件的最后也有表单的最后结尾和第一行相同, ////减去末尾的字符串:“\r\n--\r\n” if (firstLine.Contains("--")) ms.SetLength(ms.Length - encoding.GetBytes(firstLine).LongLength - 3 * 2); else ms.SetLength(ms.Length); using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write)) { ms.CopyTo(fs); fs.Close(); fs.Dispose(); } } string sql = "UPDATE Viw_Robot_Member_List SET IsRegister=2 WHERE MemberId=@MemberID"; SqlParameter[] params_sql = new SqlParameter[]{ SqlHelper.MakeInParam("@MemberID",MemberID) }; db.robot.ExecuteNonQuery(sql, params_sql); return true; } catch { return false; } }
php上传文件出现错误,求大家解释一下,怎么修改?
一共四个文件: 1、 ``` <?php require('config.php'); ?> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title><?=SITE_NAME?></title></head><body> <p><b><a href="<?=SITE_DIR?>"><?=SITE_NAME?></a><br></b><?=SITE_ADV?></p><br> <p><form enctype="multipart/form-data" action="upload.php" method="post"><input type="file" name="uploadfile"><input type="submit" value="上传"></form></p> </body></html> ``` 2、 ``` <?php define('SITE_NAME','外链盘'); define('SITE_ADV','文件保存5天,最大10MB。随时删除,请勿上传重要文件。全部公开,请勿上传私密文件。'); define('SITE_DIR','http://www.abc.com/'); //包含尾部"/" define('UPLOAD_DIR','u/'); //包含尾部"/","u"目录及根目录设为777 define('MAX_SIZE','99999999999999999999'); //文件最大字节大小 $valid_suffix = array('.php','.asp','.aspx');//不允许上传类型 function valid_suffix($suffix){ global $valid_suffix; if (!in_array($suffix,$valid_suffix)){ return true; }else{ return false; } } ?> ``` 3、 ``` <?php require('config.php'); if($_FILES['uploadfile']['error']>0){ $uploadtype = false; switch($_FILES['uploadfile']['error']){ } } $suffix = strtolower(substr($_FILES['uploadfile']['name'],-4)); if(!valid_suffix($suffix)){ $uploadtype = false; } if($uploadtype === false){ }else{ $userip = ip2long($_SERVER['REMOTE_ADDR']); $time = time(); $newpath = UPLOAD_DIR . $time .'x'. $userip . $suffix; if(is_uploaded_file($_FILES['uploadfile']['tmp_name'])){ if(!move_uploaded_file($_FILES['uploadfile']['tmp_name'],$newpath)){ $uploadtype = false; }else{ $uploadtype = true; } }else{ $uploadtype = false; } } if($uploadtype === false){ }else{ setcookie('uploaded',$time.'x'.$userip.$suffix.'|'.$_COOKIE['uploaded'],time()+3600*24*365); } ?> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title><?=SITE_NAME?></title></head><body> <p><b><a href="<?=SITE_DIR?>"><?=SITE_NAME?></a><br></b><?=SITE_ADV?></p><br> <?php if($uploadtype === false){ ?> <p><b>上传失败!</b><br> <br>文件不存在,过大或不允许该扩展名。<br> <br><a href="<?=SITE_DIR?>">重新上传</a></p> <br><p><a href="http://xxcv.net">返回首页</a> <a href="http://straysky.com" target="_blank">Powered by Straysky</a></p> <?php }else{ ?> <p><b>上传成功!</b><br> <br>文件代码:<br> 标准:<input value="<?=SITE_DIR.$newpath?>" style="width:500px;" onclick="this.select();" /><br> HTML:<input value="<a href=<?=SITE_DIR.$newpath?> target=_blank>点此查看文件[xxcv.net]</a>" style="width:500px;" onclick="this.select();" /><br> <br>图片代码:<br> 论坛:<input value="[img]<?=SITE_DIR.$newpath?>[/img]" style="width:500px;" onclick="this.select();" /><br> HTML:<input value="<img src=<?=SITE_DIR.$newpath?>>" style="width:500px;" onclick="this.select();" /><br> <br><a href="<?=SITE_DIR?>">继续上传</a></p> <br><p><a href="http://xxcv.net">返回首页</a> <a href="http://straysky.com" target="_blank">Powered by Straysky</a></p> <?php } ?> </body></html> ``` 4、 ``` <meta http-equiv="refresh" content="0;> ``` 最后一个文件夹U,出现这样的错误![图片说明](https://img-ask.csdn.net/upload/201504/09/1428509549_619738.jpg)
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
相关热词 c#中dns类 c#合并的excel c# implicit c#怎么保留3个小数点 c# 串口通信、 网络调试助手c# c# 泛型比较大小 c#解压分卷问题 c#启动居中 c# 逻辑或运算符
立即提问