上传图片到服务器 because no multipart boundary was found 20C

各路神仙看过来啊……
问题:服务端输出:the request was rejected because no multipart boundary was found
客户端代码:
new AsyncTask() {
protected void onPostExecute(String result) {
etNotice.append("success"+result);
};
@Override
protected String doInBackground(Void... arg0) {
String r=null;
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost httppost = new HttpPost(Config.SERVER_URL+Config.ACTION_Noticeinfo);
FileEntity reqEntity = new FileEntity(file, "binary/octet-stream");
reqEntity.setContentType("multipart/form-data");

httppost.setEntity(reqEntity);
try {
//httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "utf-8"));
HttpResponse response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
r=String.valueOf(response.getStatusLine().getStatusCode());

if (resEntity != null) {
System.out.println(EntityUtils.toString(resEntity));
}
if (resEntity != null) {
resEntity.consumeContent();
}
httpclient.getConnectionManager().shutdown();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return r;
}
}.execute();

服务器代码:
private void uploadImg(HttpServletRequest request,
HttpServletResponse response) throws IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setFileSizeMax(1024*1024); //设置上传文件的最大容量

try{

List items = (List)upload.parseRequest(new ServletRequestContext(request));
// Listitems = upload.parseRequest( (RequestContext) request); //取得表单全部数据

for(FileItem item:items){

if(!item.isFormField()){ //如果是上传的文件

String name = "D:\"+item.getName().substring(item.getName().lastIndexOf('\')+1);

String filename = name;

System.out.println(filename);

File f = new File(filename); //保存到D盘

item.write(f);

System.out.println("上传成功");

}

}

}

catch(Exception e){

e.printStackTrace();

}
}
客户端收到的status为200说明数据传到了服务器,但是服务器出现了错误:the request was rejected because no multipart boundary was found,请问怎么办啊?

1个回答

出现此错误:
$ gitk --all
Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme:
Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was......
答案就在这里:CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme:
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

guomin_beiluoshimen
Sue Zheng 阴魂不散
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
the request was rejected because no multipart boundary was found
服务器代码:DiskFileItemFactory factory = new DiskFileItemFactory(); //获取文件上传需要保存的路径,upload文件夹需存在。 String path = request.getSession().getServletContext().getRealPath("/upload"); //设置暂时存放文件的存储室,这个存储室可以和最终存储文件的文件夹不同。因为当文件很大的话会占用过多内存所以设置存储室。 factory.setRepository(new File(path)); //设置缓存的大小,当上传文件的容量超过缓存时,就放到暂时存储室。 factory.setSizeThreshold(1024*1024); //上传处理工具类(高水平API上传处理?) ServletFileUpload upload = new ServletFileUpload(factory); try{ //调用 parseRequest(request)方法 获得上传文件 FileItem 的集合list 可实现多文件上传。 List<FileItem> list = upload.parseRequest(request); for(FileItem item:list){ //获取表单属性名字。 String name = item.getFieldName(); //如果获取的表单信息是普通的文本信息。即通过页面表单形式传递来的字符串。 if(item.isFormField()){ //获取用户具体输入的字符串, String value = item.getString(); request.setAttribute(name, value); } //如果传入的是非简单字符串,而是图片,音频,视频等二进制文件。 else{ //获取路径名 String value = item.getName(); //取到最后一个反斜杠。 int start = value.lastIndexOf("\\"); //截取上传文件的 字符串名字。+1是去掉反斜杠。 String filename = value.substring(start+1); request.setAttribute(name, filename); /*第三方提供的方法直接写到文件中。 * item.write(new File(path,filename));*/ //收到写到接收的文件中。 OutputStream out = new FileOutputStream(new File(path,filename)); InputStream in = item.getInputStream(); int length = 0; byte[] buf = new byte[1024]; System.out.println("获取文件总量的容量:"+ item.getSize()); while((length = in.read(buf))!=-1){ out.write(buf,0,length); } in.close(); out.close(); } } }catch(Exception e){ e.printStackTrace(); } // }
vue ajax上传文件时Java后端报错
我正在做一个上传头像功能,前端使用vue.js,后端是springboot构建的项目,但是每次vue请求传到后端时,都会报格式错误。代码如下: 后端接口: @PostMapping("/userinfo/uploadHeadImg") public AjaxResult<?> uploadHeadImg(@RequestParam MultipartFile file, @RequestParam Integer userInfoId) throws Exception{ return tbUserinfoService.uploadHeadImg(file,userInfoId); } html部分: <div class="setting-head"> <!--个人头像--> <div class="user-head-img" > <div class="use-click" @click="uploadHeadImg"> <el-avatar :size="60" :src="userHeadImg" > </el-avatar> <input type="file" accept="image/*" class="hiddenInput" @change="handleFile"/> </div> </div> </div> js部分: handleFile: function (e) { let $target = e.target || e.srcElement; let file = $target.files[0]; var reader = new FileReader(); reader.onload = (data) => { let res = data.target || data.srcElement; this.$store.dispatch("uploadHeadImg",file); }; reader.readAsDataURL(file) }, store.js 文件部分: ``` actions:{ uploadHeadImg({commit,state},file){ Vue.http.post('/userinfo/uploadHeadImg',{file:file,userInfoId:state.userInfoId}, {headers: { 'Content-Type': 'multipart/form-data' }}, ).then(function(res){ var result = res.data; if(result.code=="200"){ this.userHeadImg = res.result; commit("setUserHeadImgFile",file); } }) } ``` 报错现象分两种情况: 当store.js部分添加了 {headers: { 'Content-Type': 'multipart/form-data' }}, 后,后端报错如下: Resolved [org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found] 我在网上找了大部分的解决方式是说去掉 header请求中的 Content-Type就行了。 <br> 但是当我去掉这部分后报错又变成了: Resolved [org.springframework.web.multipart.MultipartException: Current request is not a multipart request] 网上搜索解决方式:说请求头添加 <br> 'Content-Type': 'multipart/form-data' 陷入死循环中.... 希望有熟悉这部分的老哥可以帮忙请求看看,谢谢!!! 通过postman测试,后端接口成功,但就是通过vue访问就会报错
急!!!安卓程序不能上传照片到服务器
我想做一个app 实现把拍下来的照片传到服务器上,现在可以拍照并保存到手机上面,但无法上传到服务器上,是什么情况? 服务器是用tomcat搭的 安卓上传的代码: import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.Button; import android.widget.Toast; public class uploadActivity extends Activity { private Button uploadbutton; private String uploadFile = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Test.jpg"; private String srcPath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Test.jpg"; private String actionUrl = "http://192.168.1.105:8080/ATestInternetCameraServlet/"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_photo); uploadbutton=(Button)findViewById(R.id.button2); uploadbutton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { uploadFile(); } }); } private void uploadFile() { String uploadUrl = "http://192.168.1.105:8080/ATestInternetCameraServlet/CameraServlet"; String end = "\r\n"; String twoHyphens = "--"; String boundary = "******"; try { URL url = new URL(uploadUrl); HttpURLConnection httpURLConnection = (HttpURLConnection) url .openConnection(); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); httpURLConnection.setUseCaches(false); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Connection", "Keep-Alive"); httpURLConnection.setRequestProperty("Charset", "UTF-8"); httpURLConnection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); DataOutputStream dos = new DataOutputStream(httpURLConnection .getOutputStream()); dos.writeBytes(twoHyphens + boundary + end); dos .writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + srcPath.substring(srcPath.lastIndexOf("/") + 1) + "\"" + end); dos.writeBytes(end); FileInputStream fis = new FileInputStream(srcPath); byte[] buffer = new byte[8192]; // 8k int count = 0; while ((count = fis.read(buffer)) != -1) { dos.write(buffer, 0, count); } fis.close(); dos.writeBytes(end); dos.writeBytes(twoHyphens + boundary + twoHyphens + end); dos.flush(); InputStream is = httpURLConnection.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "utf-8"); BufferedReader br = new BufferedReader(isr); String result = br.readLine(); Toast.makeText(this, result, Toast.LENGTH_LONG).show();// dos.close(); is.close(); } catch (Exception e) { e.printStackTrace(); setTitle(e.getMessage()); } } } 服务器代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class CameraServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { request.setCharacterEncoding("UTF-8"); // 设置处理请求参数的编码格式 response.setContentType("text/html;charset=UTF-8"); // 设置Content-Type字段值 PrintWriter out2 = response.getWriter(); // 下面的代码开始使用Commons-UploadFile组件处理上传的文件数据 FileItemFactory factory = new DiskFileItemFactory(); // 建立FileItemFactory对象 ServletFileUpload upload = new ServletFileUpload(factory); // 分析请求,并得到上传文件的FileItem对象 List<FileItem> items = upload.parseRequest(request); // 从web.xml文件中的参数中得到上传文件的路径 String uploadPath = "d:\\cameraupload\\"; File file = new File(uploadPath); if (!file.exists()) { file.mkdir(); } String filename = ""; // 上传文件保存到服务器的文件名 InputStream is = null; // 当前上传文件的InputStream对象 // 循环处理上传文件 for (FileItem item : items) { // 处理普通的表单域 if (item.isFormField()) { if (item.getFieldName().equals("filename")) { // 如果新文件不为空,将其保存在filename中 if (!item.getString().equals("")) filename = item.getString("UTF-8"); } } // 处理上传文件 else if (item.getName() != null && !item.getName().equals("")) { // 从客户端发送过来的上传文件路径中截取文件名 filename = item.getName().substring( item.getName().lastIndexOf("\\") + 1); is = item.getInputStream(); // 得到上传文件的InputStream对象 } } // 将路径和上传文件名组合成完整的服务端路径 filename = uploadPath + filename; // 如果服务器已经存在和上传文件同名的文件,则输出提示信息 if (new File(filename).exists()) { new File(filename).delete(); } // 开始上传文件 if (!filename.equals("")) { // 用FileOutputStream打开服务端的上传文件 FileOutputStream fos2 = new FileOutputStream(filename); byte[] buffer = new byte[8192]; // 每次读8K字节 int count = 0; // 开始读取上传文件的字节,并将其输出到服务端的上传文件输出流中 while ((count = is.read(buffer)) > 0) { fos2.write(buffer, 0, count); // 向服务端文件写入字节流 } fos2.close(); // 关闭FileOutputStream对象 is.close(); // InputStream对象 out2.println("文件上传成功!xii"); } } catch (Exception e) { } } }
struts2上传图片到服务器
谁有用struts2上传图片到服务器的例子。谢谢 [b]问题补充:[/b] 我做了一个例子报错 Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location] [b]问题补充:[/b] 我先不放到数据库中,先放到服务器端。 [b]问题补充:[/b] 就是我本地机器有图片。C:AA.BMP传到服务器上 [b]问题补充:[/b] java.lang.StringIndexOutOfBoundsException: String index out of range: -1 报这个异常。怎么回事儿呀? [b]问题补充:[/b] 是int pos = fileName.lastIndexOf( "." );这句话错了。引号里有空格,就不行
NSURLSession上传图片 Failed to decode Multipart body
要上传的图片文件为data,name:@"facebyte",filename:@"facebyte",mimeType:@"image/jpeg" 核心代码如下: ``` NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:aUrl]]; NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration]; NSString *boundary = [NSString stringWithFormat:@"Boundary+%@", [[NSUUID UUID] UUIDString]]; NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; [request setValue:contentType forHTTPHeaderField: @"Content-Type"]; [request setHTTPMethod:@"POST"]; NSData *httpBody = [self createBodyWithParameters:params data:data mimeType:@"image/jpeg" name:@"facebyte" finename:@"facebyte"]; NSURLSession *uploadSession = [NSURLSession sharedSession]; NSURLSessionTask *task = [uploadSession uploadTaskWithRequest:request fromData:httpBody completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { .... }]; [task resume]; + (NSData *)createBodyWithParameters:(NSDictionary *)parameters data:(NSData *)data mimeType:(NSString *)mimeType name:(NSString *)name finename:(NSString *)fileName { NSMutableData *httpBody = [NSMutableData data]; NSString *boundary = [NSString stringWithFormat:@"Boundary+%@", [[NSUUID UUID] UUIDString]]; // add params (all params are strings) [parameters enumerateKeysAndObjectsUsingBlock:^(NSString *parameterKey, NSString *parameterValue, BOOL *stop) { [httpBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [httpBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", parameterKey] dataUsingEncoding:NSUTF8StringEncoding]]; [httpBody appendData:[[NSString stringWithFormat:@"%@\r\n", parameterValue] dataUsingEncoding:NSUTF8StringEncoding]]; }]; // add image data [httpBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; [httpBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", name, fileName] dataUsingEncoding:NSUTF8StringEncoding]]; [httpBody appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n\r\n", mimeType] dataUsingEncoding:NSUTF8StringEncoding]]; [httpBody appendData:data]; [httpBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; [httpBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; return httpBody; } ``` 最后请求发出后,用Charles抓包发现Request中的Multipart标签中显示Failed to decode Multipart body,怀疑应该是boundary做的不对? 求助各位大神....怎么解决
winfrom 通过multipart/form-data方式 上传EXCEL文件,发生错误
static void FileUpload(string m_fileNamePath, string wenjianmin) { string Boundary = "wojuedezhgexiangmushigekeng"; //构造请求参数 Dictionary<string, string> PostInfo = new Dictionary<string, string>(); //PostInfo.Add("sequenceNo ", "A0002"); //PostInfo.Add("type", "application/vnd.ms-excel"); //PostInfo.Add("file", ""); //PostInfo.Add("filename", wenjianmin); //构造POST请求体 StringBuilder PostContent = new StringBuilder("--" + Boundary); byte[] ContentEnd = Encoding.UTF8.GetBytes("--" + Boundary + "--\r\n");//请求体末尾,后面会用到 //组成普通参数信息 foreach (KeyValuePair<string, string> item in PostInfo) { PostContent.Append("\r\n") .Append("Content-Disposition: form-data; name=\"") .Append(item.Key + "\"").Append("\r\n") .Append("\r\n").Append(item.Value).Append("\r\n") .Append("--").Append(Boundary); } //转换为二进制数组,后面会用到 byte[] PostContentByte = Encoding.UTF8.GetBytes(PostContent.ToString()); //文件信息 byte[] UpdateFile = File2Bytes(m_fileNamePath);//转换为二进制 StringBuilder FileContent = new StringBuilder(); FileContent.Append("\r\n") .Append("Content-Disposition:form-data; name=\"") .Append("flie" + "\"; ") .Append("filename=\"") .Append(wenjianmin + "\"") .Append("\r\n") .Append("Content-Type: application/vnd.ms-excel") .Append("\r\n") .Append("\r\n"); byte[] FileContentByte = Encoding.UTF8.GetBytes(FileContent.ToString()); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_address); request.Method = "POST"; request.Timeout = 100000; //这里确定了分隔符是什么 request.Headers.Add("Cookie", "JSESSIONID=19FCE6CF428E78732830248719E3836A"); //request.Headers.Add("Accept-Encoding", " gzip, deflate"); request.ContentType = "multipart/form-data;boundary=" + Boundary; //request.Cookie = ""; //定义请求流 Stream myRequestStream = request.GetRequestStream(); myRequestStream.Write(PostContentByte, 0, PostContentByte.Length);//写入参数 myRequestStream.Write(FileContentByte, 0, FileContentByte.Length);//写入文件信息 myRequestStream.Write(UpdateFile, 0, UpdateFile.Length);//文件写入请求流中 myRequestStream.Write(ContentEnd, 0, ContentEnd.Length);//写入结尾 HttpWebResponse res; try { res = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { res = (HttpWebResponse)ex.Response; } //StreamReader sr = new StreamReader(res.GetResponseStream(), strEncode); //strHtml = sr.ReadToEnd(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //获取返回值 Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); myRequestStream.Close(); myStreamReader.Close(); myResponseStream.Close(); } 以下是抓包截图 ![图片说明](https://img-ask.csdn.net/upload/202001/09/1578548657_696695.png) 返回错误信息 {"timestamp":"2020-01-09 13:40:35","status":500,"error":"Internal Server Error","message":"Failed to parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly","path":"/lab/calibrator/uploadReport"}
django后端使用了fastdfs存储,那么用户怎么在前端input上传图片到服务器并被接收
django后端使用了fastdfs存储,那么用户在前端input上传图片到服务器,怎么接收保存,图片存哪了,怎么知道路径和名字? ![图片说明](https://img-ask.csdn.net/upload/201906/25/1561395433_293023.png) 这是上传以后前端返回结果 ![图片说明](https://img-ask.csdn.net/upload/201906/25/1561396591_360028.png) 图片里的fastdfs配置没问题,admin管理站点上传都正常,但是普通用户怎么上传图片上来呢,比如说用户想上传个头像图片什么的。 前端相关代码段 ``` <form method="post" action="/juhe/setqcode" enctype="multipart/form-data"> {%csrf_token%} <input type="file" name="pic1"/><br> <input type="submit" name="wxpay" value="上传"> </form> <p> {{ neirong }} # 这些是为了测试回传的数据有没有 </p> 这是F1{{ A }}这是F2{{ B }}然后F3{{ C }} ``` 后端该怎么写呢?半天了也没搜出来答案 是真不会 自己瞎测试一通 f1 f2 f3 都没有内容 ``` class JhQcodeUpload(LoginRequiredMixin,View): def post(self,request): # try: f1 = request.FILES.get('name') f2 = request.FILES.get('pic1') # 这个的返回值存在 f3 = request.FILES.get('wxpay') # # conf = get_tracker_conf('/etc/fastdfs/client.conf') # client = Fdfs_client(conf) # # # client.upload_by_filename(f1) # return HttpResponse('OK') return render(request, 'juhe_myqcode.html', {'neirong': 'ok1','A':f1,'B':f2,'C':f3}) ```
ios表单上传图片和属性到服务器,struts2过滤后,获取不到属性值
ios通过表单上传enctype="multipart/form-data",图片上传成功,但ServletActionContext.getRequest().getParameter("");就获取不到值;如果不上传图片,就能获取到值。
文件上传加参数files=文件流上传类型为enctype=multipart/form-data
文件上传加个参数files=文件流,上传类型为: enctype="multipart/form-data" 能解释下?
multipart/form-data上传图片 解析为空
如题 提交格式如下 Content-type: multipart/form-data, boundary=aaaaa --aaaaa content-disposition: form-data; name="name" aaaa --aaaaa content-disposition: form-data; name="image"; filename="image.png" Content-Type: image/png // 这里是关于图片的解码 --aaaaa-- PHP进行解析 $newfilename = "photo/".$_POST['name']."/".$_FILES["image"]["name"]; echo $newfilename; if(move_uploaded_file($_FILES["image"]["tmp_name"], $newfilename)) { echo "上传成功!<br>"; } 打印结果:photo// name和图片信息都没有获取到 求帮助.... 如果我写的不对,应该怎么写呢?
上传图像到 php 服务器的问题
我不能够把图像上传到php服务器。当查询的时候,我发现有这部分代码,不能把图像上传到 php 服务器。再次如何把用户名、密码、模块和函数名传给当前的请求?下面是我在网上找到的代码 HttpURLConnection connection = null; DataOutputStream outputStream = null; DataInputStream inputStream = null; String pathToOurFile = "/data/file_to_send.mp3"; String urlServer = "http://192.168.1.1/handle_upload.php"; String lineEnd = "\r\n"; String twoHyphens = "--"; String boundary = "*****"; int bytesRead, bytesAvailable, bufferSize; byte[] buffer; int maxBufferSize = 1*1024*1024; try { FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile) ); URL url = new URL(urlServer); connection = (HttpURLConnection) url.openConnection(); // Allow Inputs & Outputs connection.setDoInput(true); connection.setDoOutput(true); connection.setUseCaches(false); // Enable POST method connection.setRequestMethod("POST"); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary); outputStream = new DataOutputStream( connection.getOutputStream() ); outputStream.writeBytes(twoHyphens + boundary + lineEnd); outputStream.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + pathToOurFile +"\"" + lineEnd); outputStream.writeBytes(lineEnd); bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); buffer = new byte[bufferSize]; // Read file bytesRead = fileInputStream.read(buffer, 0, bufferSize); while (bytesRead > 0) { outputStream.write(buffer, 0, bufferSize); bytesAvailable = fileInputStream.available(); bufferSize = Math.min(bytesAvailable, maxBufferSize); bytesRead = fileInputStream.read(buffer, 0, bufferSize); } outputStream.writeBytes(lineEnd); outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); // Responses from the server (code and message) serverResponseCode = connection.getResponseCode(); serverResponseMessage = connection.getResponseMessage(); fileInputStream.close(); outputStream.flush(); outputStream.close(); } catch (Exception ex) { //Exception handling } 看似也不太好用,怎么修改代码呢?
上传图片,如何请求转发到动态ip的服务器上
我的需求是: 通过网页或者手机通过http post上传一个图片,后台servlet接收到该HttpServletRequest实例后,根据一个工具类算法获取到处理给请求的服务器ip,然后将这个http request发送给该ip的服务器。 然后由该ip的服务器获取到网页或者手机上传的图片,存储到该服务器的本地磁盘上。 请问该怎样实现请求的转发呢? 我曾经考虑过使用jsp的forward,但forward只能转发到当前的servlet容器,而不能转发到其他ip的servlet. 我也考虑到用httpclient,但网上查到的例子,httpclient只能添加静态请求参数,而用户通过网页上传的图片跟填写的String还不一样,所以不确定httpclient是否可以实现我的需求。 或者哪位高手有更好的建议吗?请指点,多谢! 附:网页这样请求: <form action="/pic/uploadPic" enctype="multipart/form-data" method="post"> <table class="gridtable"> <tr> <th>select pic:</th> <td><input type="file" name="myfile" value="browse"></td> </tr> </table> <p><input type="submit" value="submit"></p> </form>
关于上传图片到服务器的路径问题!请大家帮一下忙
<p>在jsp页面上显示服务器的图片:</p> <pre name="code" class="html">&lt;img src="http://www.xxxx.com:serverPort/image/gfan.png" id="myImg" title="证件照(反面)" /&gt;</pre> <p> 这样显示是没有问题的。</p> <p>我在jsp页面上传图片到该服务器:</p> <pre name="code" class="java">&lt;form name="myform" action="upload!uploadfile" method="post" enctype="multipart/form-data"&gt; &lt;input type="file" id="filePath" name="filePath"/&gt; &lt;input type="submit" id="mysubmit" value="上传"/&gt; &lt;/form&gt;</pre> <p> <span style="background-color: #ffffff;"> <span style="font-size: small;"><strong><span style="color: #0000ff;"> action:</span></strong></span></span></p> <pre name="code" class="java">package com.zhangying.util; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.text.SimpleDateFormat; import java.util.Date; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import com.opensymphony.xwork2.ActionSupport; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class FileUpload extends ActionSupport implements ServletRequestAware,ServletResponseAware{ /** * author : Jacen * FileUpload Action * upload files from localhost to server */ private static final long serialVersionUID = 1L; private String filePath; private String serverPath; private HttpServletResponse response; private HttpServletRequest request; public String uploadfile() throws Exception { System.out.println(filePath); //参数1:本地文件路径 // System.out.println(serverPath); //参数2:要上传的服务器路径 String resultPath = ""; // 上传后图片所在的路径 FileOutputStream out = null; // 文件输出流 try { // 验证图片上传的格式是否正确 File f = new File(filePath); if (!f.isFile()) { throw new Exception(" f不是图片文件!"); } if (f != null &amp;&amp; f.exists()) { // 这里的ImageIO属于java工厂类,在工厂类class里面,调用的System.gc(),频繁调用会造成dump,需要考虑优化 BufferedImage image = ImageIO.read(f); // 读入文件 if (image != null) { BufferedImage tag = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); // 构造一个类型为预定义图像类型之一的 BufferedImage tag.getGraphics().drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null); // 绘制所需要尺寸大小的图片 /* * 以下生成 图片上传后在服务器上的 新路径 */ int lastLength = filePath.lastIndexOf("."); String imageName="jacen"; //用用户名来作为上传图片的文件名 String fileType = filePath.substring(lastLength); // 获取上传图片的类型 resultPath = "http://www.gyswad.com:90/developerCerpic/"+ imageName+ fileType; //图片在服务器上的地址 System.out.println(resultPath); /* * 进行图片的绘制 */ out = new FileOutputStream(resultPath); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam param = encoder .getDefaultJPEGEncodeParam(tag); param.setQuality(0.95f, true); // 95%图像 param.setDensityUnit(1); // 像素尺寸单位.像素/英寸 param.setXDensity(300); // 水平分辨率 param.setYDensity(300); // 垂直分辨率 encoder.setJPEGEncodeParam(param); encoder.encode(tag); tag = null; } } f = null; } catch (Exception e) { e.printStackTrace(); }finally{ out.close(); out=null; } // request.setAttribute("resultPath", resultPath); // return resultPath; return "success"; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public String getServerPath() { return serverPath; } public void setServerPath(String serverPath) { this.serverPath = serverPath; } public HttpServletResponse getResponse() { return response; } public void setResponse(HttpServletResponse response) { this.response = response; } public HttpServletRequest getRequest() { return request; } public void setRequest(HttpServletRequest request) { this.request = request; } @Override public void setServletResponse(HttpServletResponse arg0) { // TODO Auto-generated method stub } @Override public void setServletRequest(HttpServletRequest arg0) { // TODO Auto-generated method stub } }</pre> <p>  <span style="color: #ff0000;">现在报错:说是空指向异常</span></p> <pre name="code" class="java">finally{ out.close(); out=null; }</pre> <p>我感觉是resultPath&lt;!--上传图片到服务器的路径--&gt;有问题,请各位帮忙看一下,这里的resultPath到底怎么写?<span style="color: #ff0000; font-size: small;"><strong>还有,如果各位还有什么更好的方法实现图片上传,请指教。本人新手,一切都略知。</strong></span></p> <p>控制台打印的错误信息是这样的:</p> <pre name="code" class="java">\temp\upload__daca63c_1399f88364d__8000_00000000.tmp http://www.gyswad.com:90/developerCerpic/jacen.tmp java.io.FileNotFoundException: http:\www.gyswad.com:90\developerCerpic\jacen.tmp (文件名、目录名或卷标语法不正确。) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.&lt;init&gt;(Unknown Source) at java.io.FileOutputStream.&lt;init&gt;(Unknown Source) at com.zhangying.util.FileUpload.uploadfile(FileUpload.java:67) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source)</pre> <p> <span style="color: #800080;"><em><strong>补充:我想将本地图片上传到服务器的d://Apache2.2/temp/image文件夹下面。</strong></em></span></p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p>
WebApi 上传附件到 ftp 服务器
想要实现的功能:Post附件到WebApi,WebApi 将文件转发到 ftp服务器。 主要功能已经实现,有一个问题:需要在WebApi服务器,接收流写入WebApi本地文件,然后读取文件流写入 ftp 服务器,然后再删除WebApi 服务器上的本地文件,现在不想在WebApi本地写文件,直接取Request的流写入到 ftp,不知道能不能实现,应该怎样写? 1. Post附件到WebApi 主要代码: #region 上传文件 /// <summary> /// 通过multipart/form-data方式上传文件 /// </summary> /// <returns></returns> [HttpPost] public async Task<HttpResponseMessage> PostFile() { MessagesDataCodeModel json = new MessagesDataCodeModel(false, "无效参数", 401); try { // 是否请求包含multipart/form-data。 if (!Request.Content.IsMimeMultipartContent()) { logger.Error("上传格式不是multipart/form-data"); throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string root = HttpContext.Current.Server.MapPath("/UploadFiles/"); if (!Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadFiles/"))) { Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/UploadFiles/")); } var provider = new MultipartFormDataStreamProvider(root); StringBuilder sb = new StringBuilder(); // Holds the response body // 阅读表格数据并返回一个异步任务. await Request.Content.ReadAsMultipartAsync(provider); // 如何上传文件到文件名. foreach (var file in provider.FileData) { string orfilename = file.Headers.ContentDisposition.FileName.TrimStart('"').TrimEnd('"'); FileInfo fileinfo = new FileInfo(file.LocalFileName); //sb.Append(string.Format("Uploaded file: {0} ({1} bytes)\n", fileInfo.Name, fileInfo.Length)); //最大文件大小 //int maxSize = Convert.ToInt32(SettingConfig.MaxSize); if (fileinfo.Length <= 0) { json.Success = false; json.Msg = "请选择上传文件"; json.Code = 301; } else if (fileinfo.Length > ConfigHelper.MaxFileSize) { json.Msg = "上传文件大小超过限制"; json.Code = 302; } else { string fileExt = orfilename.Substring(orfilename.LastIndexOf('.')); //定义允许上传的文件扩展名 //String fileTypes = SettingConfig.FileTypes; //if (String.IsNullOrEmpty(fileExt) || Array.IndexOf(fileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1) //{ // json.Msg = "图片类型不正确"; // json.Code = 303; //} //else //{ //String ymd = DateTime.Now.ToString("yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo); //String newFileName = DateTime.Now.ToString("yyyyMMddHHmmss_ffff", System.Globalization.DateTimeFormatInfo.InvariantInfo); fileinfo.CopyTo(Path.Combine(root, fileinfo.Name + fileExt), true); json.Success = true; json.Msg = "操作成功"; json.Code = 200; sb.Append("/UploadFiles/" + fileinfo.Name + fileExt); json.Data = sb.ToString(); //} } fileinfo.Delete();//删除原文件 } } catch (System.Exception e) { json.Success = false; json.Msg = "服务器无响应"; json.Code = 500; logger.Error("PostFile()服务器错误", e); } return ToJsonTran.ToJson(json); } #endregion 上传文件 2. 上传到 ftp服务器 /// <summary> /// 上传文件 /// </summary> /// <param name="fileinfo">需要上传的文件</param> /// <param name="targetDir">目标路径</param> /// <param name="hostname">ftp地址</param> /// <param name="username">ftp用户名</param> /// <param name="password">ftp密码</param> public static void UploadFile(FileInfo fileinfo, string targetDir, string hostname, string username, string password) { //1. check target string target; if (targetDir.Trim() == "") { return; } target = Guid.NewGuid().ToString(); //使用临时文件名 string URI = "FTP://" + hostname + "/" + targetDir + "/" + target; ///WebClient webcl = new WebClient(); System.Net.FtpWebRequest ftp = GetRequest(URI, username, password); //设置FTP命令 设置所要执行的FTP命令, //ftp.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails;//假设此处为显示指定路径下的文件列表 ftp.Method = System.Net.WebRequestMethods.Ftp.UploadFile; //指定文件传输的数据类型 ftp.UseBinary = true; ftp.UsePassive = true; //告诉ftp文件大小 ftp.ContentLength = fileinfo.Length; //缓冲大小设置为2KB const int BufferSize = 2048; byte[] content = new byte[BufferSize - 1 + 1]; int dataRead; //打开一个文件流 (System.IO.FileStream) 去读上传的文件 using (FileStream fs = fileinfo.OpenRead()) { try { //把上传的文件写入流 using (Stream rs = ftp.GetRequestStream()) { do { //每次读文件流的2KB dataRead = fs.Read(content, 0, BufferSize); rs.Write(content, 0, dataRead); } while (!(dataRead < BufferSize)); rs.Close(); } } catch (Exception ex) { } finally { fs.Close(); } } ftp = null; //设置FTP命令 ftp = GetRequest(URI, username, password); ftp.Method = System.Net.WebRequestMethods.Ftp.Rename; //改名 ftp.RenameTo = fileinfo.Name; try { ftp.GetResponse(); } catch (Exception ex) { ftp = GetRequest(URI, username, password); ftp.Method = System.Net.WebRequestMethods.Ftp.DeleteFile; //删除 ftp.GetResponse(); throw ex; } finally { //fileinfo.Delete(); } // 可以记录一个日志 "上传" + fileinfo.FullName + "上传到" + "FTP://" + hostname + "/" + targetDir + "/" + fileinfo.Name + "成功." ); ftp = null; #region /***** *FtpWebResponse * ****/ //FtpWebResponse ftpWebResponse = (FtpWebResponse)ftp.GetResponse(); #endregion }
安卓上传图片到asp.net mvc服务器,服务端接收不到,求解决方法
安卓客户端,与上传图片有关的代码 ``` String BOUNDARY = UUID.randomUUID().toString(); String PREFIX = "--"; try { ByteArrayOutputStream bitmapByteOutput=new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG,100,bitmapByteOutput); //bitmap是要上传的图片 String beginLine=BOUNDARY+"\r\n"; String param="Content-Disposition=from-data&name=imageFile&fileName=imageFile&Content-Type=image/jpeg\r\n"; String endLine=BOUNDARY+PREFIX+"\r\n"; byte[] bitmapByte=bitmapByteOutput.toByteArray(); URL url = new URL("http://192.168.1.102:63116/UploadTest/UploadImage"); HttpURLConnection con=(HttpURLConnection)url.openConnection(); con.setUseCaches(false); con.setDoOutput(true); con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "multipart/from-data"); con.setRequestProperty("Content-Length",String.valueOf( beginLine.getBytes().length+param.getBytes().length+bitmapByte.length+endLine.getBytes().length)); OutputStream out=con.getOutputStream(); out.write(beginLine.getBytes()); out.write(param.getBytes()); out.write(bitmapByte); out.write(endLine.getBytes()); out.flush(); if(con.getResponseCode()==200) { InputStream input=con.getInputStream(); ByteArrayOutputStream output=new ByteArrayOutputStream(); int b; while((b=input.read())!=-1) output.write(b); String response=output.toString(); input.close(); output.close(); con.disconnect(); } } catch(Exception e) { Log.e("this","上传图片的时候出错了"+e); } ``` 我的ASP.NET MVC服务端与接收图片有关的代码,是controller中的一个action ``` public ActionResult uploadImage(HttpPostedFileBase imageFile) { try { string name = imageFile.FileName; string fileName = Path.GetFileName(name); string filePath = Server.MapPath("/ImageTest/" + fileName); imageFile.SaveAs(filePath); return Content("success"); } catch (Exception ex) { return Content("fail"+ex); } } ``` 现在客户端接收到服务端返回错误的信息(上面asp.net mvc若出错了会把出错信息ex返回给客户端),就是NullReferenceException,未将对象实例设置到对象引用。指的应该是传进来的参数HttpPostedFileBase对象为null,那么这个是怎么解决呢? 应该是是这段安卓上传图片的代码有问题,但总是找不到问题所在,求指点
安卓,ios图片,字段上传,服务器接收(struts2)
在struts.xml中加入下面语句 <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="myRequestParser" class="util.RequestParseWrapper" scope="default" optional="true" /> <constant name="struts.multipart.handler" value="myRequestParser" /> ios上传图片(List<FileItem> items = upload.parseRequest(request);)才不为空,图片才能上传成功,同时action就获取不到手机端传过来的其他参数(ServletActionContext.getRequest().getParameter("token"))这个值为null,图片不上传,这里面就能获取到值。 如果把上面struts.xml中的语句去掉,安卓端能正常获取参数和上传图片,但ios上传图片就失败。
python利用requests上传multipart/form-data格式文件
我模拟登陆了微博,现在想上传图片,但是一直没有上传成功,不知道哪儿出错。 利用了requests_toolbelt这个库补充requests,从结果看,上传流程好像是通的,因为返回的content中有上传失败,有大神成功上传过图片么 m = MultipartEncoder(fields={'act': 'avatar', 'save': '1', 'image': ('filename',open('weibo_avatar001.png', 'rb'), 'image/png')}, boundary='---------------------------7de1ae242c06ca' ) req_headers = {'Content-Type': m.content_type, 'refer':setting_url_avatar,} r = session.post(back_url_avatar, data=m, headers=req_headers) print r.status_code print r.content
关于JSP画面上传Excel到服务器的问题
补充一下,用的框架是SSM框架 画面代码: ``` <form id="file_form" action="../whiteList/uploadFile" enctype="multipart/form-data" method="post" style="display:none"> <input type="file" id="fileHiden" name="fileHiden" style="display:none" onchange="fileChange()" accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/> </form> ``` 前台代码: ``` function fileChange(){ $('#file_form').submit(); } ``` 后台代码: ``` @RequestMapping("/uploadFile") @ResponseBody public String uploadFile(HttpServletRequest request,HttpServletResponse response){ // TODO request.getParameter("fileHiden");// 拿不到上传文件 } ``` 问题描述: 又查了一天了,由于从来没做过上传,如果有人愿意回答我,可否讲得详细点,给个方向查,已经浪费两天了。 原本的需求是,用户填好数据后,上传一个固定格式的Excel,我要做的是,读取这个EXCEL,再遍历行,到数据库中做个追加。但是查了好多,还是没有头绪。还请大神给个方向,愿意的话,教教我,真的很重要。 现在最先的问题是,我得拿到这个文件,再读取EXCEL。。没悬赏币急死了。。。
springcloud feign 调用服务上传文件时出现问题
报错 There was an unexpected error (type=Internal Server Error, status=500). Type definition error: [simple type, class java.io.FileDescriptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.Collections$SingletonMap["file"]->org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile["inputStream"]->java.io.FileInputStream["fd"]) * feign.codec.EncodeException: Type definition error: [simple type, class java.io.FileDescriptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.Collections$SingletonMap["file"]->org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile["inputStream"]->java.io.FileInputStream["fd"]) at feign.ReflectiveFeign$BuildEncodedTemplateFromArgs.resolve(ReflectiveFeign.java:376) at feign.ReflectiveFeign$BuildTemplateByResolvingArgs.create(ReflectiveFeign.java:224) at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:74) at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103) at com.sun.proxy.$Proxy195.upimagefile(Unknown Source) at com.xieyang.xyonlineeducationprovide.web.UserController.upheadimage(UserController.java:162) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at ``` ``` 服务端的代码 @Autowired private ossFileService oss; @RequestMapping("/upimagefile") public void upimagefile(@RequestPart MultipartFile file) { String upfile = oss.upfile(file); if(StringUtils.equals(upfile,"error")){ System.out.println("上传图片失败"); } else { System.out.println("成功上传图片"); } } ``` 客户端的代码 @FeignClient(value = "ALIYUNFILE",configuration=aliyunFileFeign.Myconfig.class ) public interface aliyunFileFeign { @Headers("Content-Type:multipart/form-data") @RequestMapping(value = "/upimagefile", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}) public void upimagefile(@RequestPart MultipartFile file); @Configuration public class Myconfig{ @Autowired private ObjectFactory<HttpMessageConverters> messageConverters; @Scope("prototype") @Primary @Bean public Encoder feignFormecoder(){ return new SpringFormEncoder(new SpringEncoder(messageConverters)); } @Bean public feign.Logger.Level multipartLoggerLevel(){ return Logger.Level.FULL; } } } ``` springboot为2.1.9 这是jackson的依赖版本 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.10</version> </dependency>
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱 极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件, 选择安装到U盘(按照操作无需更改) 三、重启进入pe系统 1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12) 选择需要启...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Java描述设计模式(19):模板方法模式
本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 通常一款互联网应用的开发流程如下:业务需求,规划产品,程序开发,测试交付。现在基于模板方法模式进行该过程描述。 public class C01_InScene { public static void main(String[] args) { DevelopApp developApp = n...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
第三个java程序(表白小卡片)
前言: &nbsp;向女神表白啦,作为一个程序员,当然也有爱情啦。只不过,虽然前面两个程序都只是学习了基础的语法结构和向量哈希表。这里涉及的是Swing,awt图形用户界面和一点文件输入输出流的知识。 &nbsp; 表白代码如下: 另附:里面的音乐和图片可以放在一个自己创建的包里面,也可以放在src里面,或者使用绝对路径。至于布局,我自己的使用的是简单的排班,简单的继承。后面的程序会慢慢实现。 ...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的回答,对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalking,作者吴晟、刘浩杨 等等 仓库地址: apache/skywalking 更...
化繁为简 - 腾讯计费高一致TDXA的实践之路
导语:腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,在如此庞大的业务体量下,腾讯计费要支撑业务的快速增长,同时还要保证每笔交易不错账。采用最终一致性或离线补...
Linux网络服务-----实验---PXE和Kickstart的无人值守装机
目录 一.PXE的原理 二.kickstart的原理 三.PXE与kickstart的结合使用自动装机 一.PXE的原理 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中,终端要求服务器分配IP地址...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
A*搜索算法概述
编者按:本文作者奇舞团前端开发工程师魏川凯。A*搜索算法(A-star search algorithm)是一种常见且应用广泛的图搜索和寻径算法。A*搜索算法是通过使用启...
程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
从顶级黑客到上市公司老板
一看标题,很多老读者就知道我在写什么了。今天Ucloud成功上市,季昕华成为我所熟悉的朋友里又双叒叕一个成功上市的案例。我们认识大概是十五年多吧,如果没记错,第一次见面应该是2004年,...
蓝桥杯知识点汇总:基础知识和常用算法
文章目录基础语法部分:算法竞赛常用API:算法部分数据结构部分 此系列包含蓝桥杯绝大部分所考察的知识点,以及真题题解~ 基础语法部分: 备战蓝桥杯java(一):一般输入输出 和 快速输入输(BufferedReader&amp;BufferedWrite) 备战蓝桥杯java(二):java编程规范和常用数据类型 备战蓝桥杯java(三):常用功能符以及循环结构和分支结构 备战蓝桥杯java(四...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 意思是密码。 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mkdir:Make directory ...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
疫情数据接口api
返回json示例 { "errcode":0,//0标识接口正常 "data":{ "date":"2020-01-30 07:47:23",//实时更新时间 "diagnosed":7736,//确诊人数 "suspect":12167,//疑是病例人数 "death":170,//死亡人数 "cur...
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问