Android客户端上传文件,C#服务端接收文件
16lz
2021-12-04
Android客户端代码
public static String uploadImage(File file, String RequestURL) { String result = "error"; String BOUNDARY = UUID.randomUUID().toString();//边界标识 随机生成 String PREFIX = "--", LINE_END = "\r\n"; String CONTENT_TYPE = "multipart/form-data";//内容类型 try { URL url = new URL(RequestURL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(50000); conn.setConnectTimeout(50000); conn.setDoInput(true);//允许输入流 conn.setDoOutput(true);//允许输出流 conn.setUseCaches(false);//不允许使用缓存 conn.setRequestMethod("POST");//请求方式 conn.setRequestProperty("Charset", "UTF-8");//设置编码 conn.setRequestProperty("connection", "keep-alive"); conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY); conn.connect(); if (file != null) { //当文件不为空,把文件包装并且上传 DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); dos.writeBytes(PREFIX + BOUNDARY + LINE_END); dos.writeBytes("Content-Disposition: form-data; " + "name=\"inputName\";filename=\"" + file.getName() + "\"" + LINE_END); dos.writeBytes(LINE_END); FileInputStream is = new FileInputStream(file); byte[] bytes = new byte[1024]; int len = -1; while ((len = is.read(bytes)) != -1) { dos.write(bytes, 0, len); } is.close(); dos.write(LINE_END.getBytes()); byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINE_END).getBytes(); dos.write(end_data); dos.flush(); /* * 获取响应码 200=成功 * 当响应成功,获取响应的流 */ int res = conn.getResponseCode(); if (res == 200) { InputStream input = conn.getInputStream(); StringBuilder sbs = new StringBuilder(); int ss; while ((ss = input.read()) != -1) { sbs.append((char) ss); } result = sbs.toString(); String filepathnow=file.getPath(); String newfilename=filepathnow.substring(0,filepathnow.lastIndexOf("."))+"-已上传.log"; file.renameTo(new File(newfilename) ); } } } catch (IOException e) { e.printStackTrace(); } return result; }
C#服务端代码
public static string Upload_File(){ try { HttpFileCollection file_list = HttpContext.Current.Request.Files; if (file_list != null && file_list.Count > 0) { string str = string.Empty; for (int i = 0; i < file_list.Count; i++) { HttpPostedFile file = file_list[i]; string type = file.ContentType;//获取文件类型 string FileName = file.FileName; string guid = ""; if (FileName != null && FileName != "") { string FileType = FileName.Substring(FileName.LastIndexOf(".") + 1);//得到文件的后缀名 guid = DateTime.Now.ToString("yyyyMMddhhmmss") + FileName;//得到重命名的文件名 //定义文件存放的目标路径 string targetDir = HttpContext.Current.Server.MapPath("~/UpLoad/" + DateTime.Now.ToString("yyyy-MM-dd") + "/file"); //创建目标路径 Directory.CreateDirectory(targetDir); string path = Path.Combine(targetDir, Path.GetFileName(guid)); file.SaveAs(path); str = str + "/UpLoad/" + DateTime.Now.ToString("yyyy-MM-dd") + "/file/" + guid; } } return "上传成功," + str; } else return "文件不存在"; } catch (Exception ex) { return "上传失败," + ex.Message; }}
更多相关文章
- 安卓高手之路之PackageManagerservice
- Android(安卓)input 输入系统学习
- android framework添加自定义服务,实现java层api调用
- Android(安卓)实现文件(图片)上传
- android照相及照片上传
- android开机logo制作
- Android第五期 - 更新自己的apk本地与网络两种方法
- android上传图片至服务器
- android各种声音类型级数设定及默认值