1. 程式人生 > >用servlet上傳檔案

用servlet上傳檔案

servlet上傳檔案是,servlet封裝了一個ServletInputStream,以下是我寫的上傳檔案,對於我的電腦來說是伺服器,上傳就是講一個檔案放到我電腦的一個地方,以下程式碼,我實現了

1.對於任意檔案格式的上傳,包括txt,docx,png,MP3等上傳,

2.不同時間多人上傳檔案,並且名字相同,對於這個問題,我建立了以時間為名字的資料夾目錄,

3。同一時間多人同時訪問伺服器,上傳檔案,並且名字相同,對於這個問題,由於我只是菜鳥,剛起步,就用了隨機數去生成民名字)(沒有寫)

servlet中的寫法,上傳檔案一定要是post

Part pathdir=null;
        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>