图片 上传 java_java web原始的图片上传示例

1.表单上传;

先获取到part对象,然后在通过part对象读取输入流(inputStream),最后把文件写到特定的目录上即可;

表单上传的前端代码:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

resp.setContentType("text/html");

resp.setCharacterEncoding("utf-8");

resp.getWriter()

.append("")

.append("

")

.append("")

.append("

")

.append("

")

.append("文件上传示例")

.append("")

.append("

" +

"

")

.append("

.append("

.append("

")

.append("")

.append("");

}

表单上传的后台处理代码:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

resp.setContentType("application/json");

resp.setCharacterEncoding("utf-8");

Part part = req.getPart("file");

String file = "{";

file += "\"name\":\"" + part.getName()+"\",\n";

file += "\"contentType\":\"" + part.getContentType()+"\",\n";

file += "\"size\":\""+part.getSize()+"\",\n";

file += "\"url\":\"/upload/"+part.getSubmittedFileName()+"\",\n";

file += "\"submitFileName\":\""+part.getSubmittedFileName()+"\"}";

BufferedInputStream bufferedInputStream = new BufferedInputStream(part.getInputStream());

FileOutputStream outputStream = new FileOutputStream("d:/tmp/"+part.getSubmittedFileName());

int read;

while ((read = bufferedInputStream.read()) != -1){

outputStream.write(read);

}

outputStream.close();

bufferedInputStream.close();

resp.getWriter()

.append(file);

}

2.js上传;

可以把图片通过FileReader对象读取转换成base64的文字,然后通过ajax上传到服务器,这个稍微简单很多.

服务器获取到上传的文本,通过分割及解密的方式,输出到存储目录中即可.

下面是base64处理的方法:

public void uploadBase64(String fieldName){

String savePath = "d:/tmp/";

String base64Data = this.request.getParameter(fieldName);

this.fileName = "test.jpg";

this.url = savePath + this.fileName;

BASE64Decoder decoder = new BASE64Decoder();

try {

File outFile = new File(this.getPhysicalPath(this.url));

OutputStream ro = new FileOutputStream(outFile);

byte[] b = decoder.decodeBuffer(base64Data);

for (int i = 0; i < b.length; ++i) {

if (b[i] < 0) {

b[i] += 256;

}

}

ro.write(b);

ro.flush();

ro.close();

this.state=this.errorInfo.get("SUCCESS");

} catch (Exception e) {

this.state = this.errorInfo.get("IO");

}

}

你可能感兴趣的:(图片,上传,java)