用servlet上傳檔案
阿新 • • 發佈:2019-02-06
servlet上傳檔案是,servlet封裝了一個ServletInputStream,以下是我寫的上傳檔案,對於我的電腦來說是伺服器,上傳就是講一個檔案放到我電腦的一個地方,以下程式碼,我實現了
1.對於任意檔案格式的上傳,包括txt,docx,png,MP3等上傳,
2.不同時間多人上傳檔案,並且名字相同,對於這個問題,我建立了以時間為名字的資料夾目錄,
3。同一時間多人同時訪問伺服器,上傳檔案,並且名字相同,對於這個問題,由於我只是菜鳥,剛起步,就用了隨機數去生成民名字)(沒有寫)
servlet中的寫法,上傳檔案一定要是post
InputStream input=null;
File outFile=null;
FileOutputStream output=null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy//MM//dd//hh//mm//ss");
try{
pathdir = request.getPart("pathDir");
String filename=getFilename(pathdir);
String typename=getTypename(filename);
String file=filename.substring(0,filename.indexOf("."));
input =pathdir.getInputStream();
outFile=new File("e://"+sdf.format(new Date())+"//"+file+typename);
outFile.getParentFile().mkdirs();
outFile.createNewFile();
output=new FileOutputStream(outFile);
byte[] b=new byte[30];
while ( input.read(b)!=-1) {
output.write(b);
}
}catch(IOException e){
}finally{
if (input!=null) {
input.close();
}
if (output!=null) {
output.close();
}
}
jsp中
<form action="path" method="post" enctype="multipart/form-data">
<input type="file" name="pathDir" />
<input type="submit" id="subPath" value="上傳" />
</form>