⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileupload.java

📁 JSP移动商品管理平台源代码.........
💻 JAVA
字号:
package imis_main.upload;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.ServletInputStream;

import java.util.Dictionary;

import java.util.Hashtable;

import java.io.PrintWriter;

import java.io.BufferedWriter;

import java.io.FileWriter;

import java.io.IOException;

import java.io.*;

public class Fileupload {

   private String savePath, filepath, filename, contentType;

   private byte[] b;

   byte t;

   private Dictionary fields;



   public String getFilename() {

        return filename;

      }



   public String getFilepath() {

       return filepath;

      }

   public String getSavePath() {

       return savePath;

     }


   public void setSavePath(String savePath) {

        this.savePath = savePath;

      }



    public String getContentType() {

         return contentType;

      }



    public String getFieldValue(String fieldName) {

     if (fields == null || fieldName == null)

     return null;

     return (String) fields.get(fieldName);

    }



     private void setFilename(String s) {

      if (s==null)

      return;

      int pos = s.indexOf("filename=\"");

      if (pos != -1) {

      filepath = s.substring(pos+10, s.length()-1);

// Windows浏览器发送完整的文件路径和名字

// 但Linux/Unix和Mac浏览器只发送文件名字

     pos = filepath.lastIndexOf("\\");

     if (pos != -1)

     filename = filepath.substring(pos + 1);

          else

       filename = filepath;

}

}

private void setContentType(String s) {

if (s==null)

return;



int pos = s.indexOf(": ");

if (pos != -1)

contentType = s.substring(pos+2, s.length());

}



public void getByte(HttpServletRequest request)

{

DataInputStream is;



int i=0;

try

{

is=new DataInputStream(request.getInputStream());

b=new byte[request.getContentLength()];



while (true)

{

try

{

t=is.readByte();

b[i]=t;

i++;

}

catch(EOFException e)

{ break;}

}

is.close();}

catch(IOException e)

{}

}



public void doUpload(HttpServletRequest request) throws IOException {

request.setCharacterEncoding("GB2312");

ServletInputStream in = request.getInputStream();



byte[] line = new byte[1280];

int i = in.readLine(line, 0, 1280);

if (i < 3)

return;

int boundaryLength = i - 2;



String boundary = new String(line, 0, boundaryLength);

fields = new Hashtable();



while (i != -1) {

String newLine = new String(line, 0, i);

if (newLine.startsWith("Content-Disposition: form-data; name=\"")) {

if (newLine.indexOf("filename=\"") != -1) {

setFilename(new String(line, 0, i-2));

if (filename==null)

return;


i = in.readLine(line, 0, 1280);

setContentType(new String(line, 0, i-2));

i = in.readLine(line, 0, 1280);
i = in.readLine(line, 0, 1280);

newLine = new String(line, 0, i,"ISO8859_1");

FileOutputStream pw=new FileOutputStream((savePath==null? "" : savePath) + filename);


while (i != -1 && !newLine.startsWith(boundary)) {

i = in.readLine(line, 0, 1280);

if ((i==boundaryLength+2 || i==boundaryLength+4)

&& (new String(line, 0, i).startsWith(boundary)))

pw.write(newLine.substring(0, newLine.length()-2).getBytes("ISO8859_1"));

else

pw.write(newLine.getBytes("ISO8859_1"));

newLine = new String(line, 0, i,"ISO8859_1");



}

pw.close();



}

else {

int pos = newLine.indexOf("name=\"");

String fieldName = newLine.substring(pos+6, newLine.length()-3);



i = in.readLine(line, 0, 1280);

i = in.readLine(line, 0, 1280);

newLine = new String(line, 0, i);

StringBuffer fieldValue = new StringBuffer(1280);

while (i != -1 && !newLine.startsWith(boundary)) {

i = in.readLine(line, 0, 1280);

if ((i==boundaryLength+2 || i==boundaryLength+4)

&& (new String(line, 0, i).startsWith(boundary)))

fieldValue.append(newLine.substring(0, newLine.length()-2));

else

fieldValue.append(newLine);

newLine = new String(line, 0, i);

}

fields.put(fieldName, fieldValue.toString());

}

}

i = in.readLine(line, 0, 1280);



}

}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -