/*** 檔案上傳的實現類,將源檔名去掉後用時間作為名字存放
* @param len request的長度
* @param contenttype request的內容
* @param in request流
* @return byte 上傳檔案的位元組陣列
*/public byte uploadtobyte(int len,string contenttype,inputstream in)
string tokens =
;//pos0 記錄 boundary 的第乙個位元組在buffer 中的位置
int pos0 = byteindexof(buffer, boundary, 0);
int pos1 = 0; //pos1 記錄在buffer 中下乙個 boundary 的位置
pos0 += boundarylen; //記錄boundary後面第乙個位元組的下標
pos1 = byteindexof(buffer, boundary, pos0);
pos0 += 2; //考慮到boundary後面的 /r/n
buffer = subbytes(buffer, pos0, pos1 - 2);
int position = new int[tokens.length];
for (int i = 0; i < tokens.length; i++)
//得到欄位名
string name = subbytesstring(buffer,
position[0] + byteslen(tokens[0]),
position[1]);
//得到檔名
string filename = subbytesstring(buffer,
position[1] + byteslen(tokens[1]),
position[2]);
system.out.println("filename=" + filename); //eg:filename="c:/set.sql"
//上傳檔案的路徑
int size = 0;
for (int k = 0; k < filename.length(); k++)
}//system.out.println("the start position is:" + size);
string myfile = filename.substring(size + 1, filename.length());
// system.out.println("myfile = " + myfile);
// int a = myfile.indexof(".");
// if (a > 0 )
// myfile = myfile.substring(a);
// long ltime = 0l;
// date dtime = new date();
// ltime = dtime.gettime(); //得到這個標識
// string stime = ltime+"";//將這個標識轉換成乙個字元物件
// //system.out.println("the file name is:" + stime + myfile);
//// //string writepath = "c://logs//" + stime + "_" + myfile;
// //string readpath = "c://logs//" + stime + "_" + myfile;
// string writepath = write_photo_path + stime+"_"+myfile;
// string readpath = read_photo_path + stime + "_" + myfile;
// //該檔案的名稱
// this.file_name = stime + "_" + myfile;
//string writepath = write_photo_path +myfile;
//string readpath = read_photo_path + myfile;
// //該檔案的名稱
this.file_name = myfile;
//得到 content-type
string content_type = subbytesstring(buffer,
position[3] +
byteslen(tokens[3]),
position[4]);
//system.out.println("content_type=" + content_type);
//得到檔案內容
byte b = subbytes(buffer, position[4] + byteslen(tokens[4]),
buffer.length);
//system.out.println(position[4] + byteslen(tokens[4]));
//system.out.println(buffer.length);
this.bcontent = b;//得到檔案的byte陣列
}catch (exception e)
return this.bcontent;
}
Java檔案上傳實現
1 準備好前台頁面upload.html 表單 action 上傳檔案後台介面 method post enctype multipart form data 檔案輸入框 2 加入相應的jar包 3 準備接收檔案servlet url路徑一定要與上面表單的action保持一致 4 編寫檔案上傳後台 ...
Java介面實現檔案上傳
因工作需要,在後台管理頁面加入乙個上傳檔案的模組,雖然介面的 很簡單,但實現期間遇到了一些比較有趣的坑,特記錄下來。檔案上傳 暫且不談,先說說檔案放在伺服器什麼位置比較合適。我首先想到的是兩個地方 nginx的靜態目錄下,放在這個目錄下則不會有什麼影響。只需要在nginx中進行相應的配置即可。可用也...
java中如何實現檔案上傳
檔案上傳一般要用到第三方的上傳元件 1 commons fileupload 非常主流 2 smartupload 編碼處理不是很好 commons fileupload 上傳步驟 例如 對乙個註冊使用者實現上傳頭像 使用者類有 private string name private string ...