檔案上傳解析
閱讀鴻洋大神部落格筆記
如果是瀏覽器上傳檔案,其實是把檔案資料轉換成2進製
然後按特定的格式傳送給伺服器
android也是乙個道理
先看看**然後再分析
public void uploadform(mapparams, string fileformname,
file uploadfile, string newfilename, string urlstr)
throws ioexception
stringbuilder sb = new stringbuilder();
/**
* 普通的表單資料
*/
for (string key : params.keyset())
/**
* 上傳檔案的頭
方法uploadform()
引數:1.mapparams
2.string fileformname
3.file uploadfile
4.string newfilename
5.string urlstr
private static final string boundary = "----webkitformboundaryt1hoybnyefogflbr";
分界線----webkitformboundaryt1hoybnyefogflbr
不知道這個是不是有固定格式的
if (newfilename == null || newfilename.trim().equals(""))
如果檔名為空的話,
那麼檔名直接命名為上傳檔案的名字
stringbuilder sb = new stringbuilder();
建立stringbuilder
for (string key : params.keyset())
遍歷params,然後拼接sb
+ "\"; filename=\"" + newfilename + "\"" + "\r\n");
上傳檔案的請求頭
把sb弄成位元組陣列
byte headerinfo = sb.tostring().getbytes("utf-8");
結尾位元組陣列
byte endinfo = ("\r\n--" + boundary + "--\r\n").getbytes("utf-8");
system.out.println(sb.tostring());
建立url
url url = new url(urlstr);
開啟連線
設定請求方式為post
conn.setrequestmethod("post");
設定請求屬性
conn.setrequestproperty("content-type",
"multipart/form-data; boundary=" + boundary);
conn.setrequestproperty("content-length", string
.valueof(headerinfo.length + uploadfile.length()
+ endinfo.length));
設定dooutput為true
conn.setdooutput(true);
拿到輸出流
outputstream out = conn.getoutputstream();
建立檔案輸入流
inputstream in = new fileinputstream(uploadfile);
寫入所有資料
out.write(headerinfo);
byte buf = new byte[1024];
int len;
while ((len = in.read(buf)) != -1)
out.write(buf, 0, len);
out.write(endinfo);
關流in.close();
out.close();
if (conn.getresponsecode() == 200)
90 檔案上傳
1 檔案上傳 首先設定請求體 使用乙個nsmutabledata進行資料拼接 本次上傳標示字串 r ncontent disposition form data name 服務端字段 filename 上傳檔名 r ncontent type 上傳檔案mimetype r n r n要上傳的二進位制...
10 檔案上傳
引入 兩個包 上傳頁面表單如下 formaction control department list fileupload.action method post enctype multipart form data 檔案 inputtype file name image br inputtype...
26 檔案上傳
一 上傳規範 前端 html 檔案上傳必須為post提交方式 表單中檔案上傳時必須帶有enctype multipart form data 時才會包含檔案內容資料 表單中用標籤上傳檔案 二 上傳規範 後端 django 檢視函式中,用request.files取檔案框的內容 file reques...