JAVA檔案上傳的實現類

2021-03-31 08:56:29 字數 2870 閱讀 6463

/*** 檔案上傳的實現類,將源檔名去掉後用時間作為名字存放

* @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 ...