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;
}
}