java后台上传附件-HttpURLConnection

本文详细介绍了如何使用Java编写一个上传附件的jsp文件,并通过后台代码调用URL实现附件上传。包括使用Java IO类进行文件读取与写入,以及通过HTTP连接进行文件上传的基本步骤。
1、定义写一个上传附件的jsp文件uploadfile.jsp

<%@ page language="java" pageEncoding="UTF-8"%>

<%@page import="java.io.*;"%>

<html>

<body>

<%

InputStream in = request.getInputStream();

request.setCharacterEncoding("utf-8");

String name = request.getHeader("filename");

if (name != null && !"".equals(name)) {

String savepath = request.getHeader("savepath");

String path = request.getSession().getServletContext()

.getRealPath("/");

File file = new File(path + "\\" + savepath + "\\" + name);

FileOutputStream fos = new FileOutputStream(file);

byte[] buffer = new byte[1024];

int bytes = 0;

while ((bytes = in.read(buffer)) != -1) {

fos.write(buffer, 0, bytes);

}

fos.flush();

fos.close();

in.close();

}

%>

</body>

</html>



2、java代码,通过后台代码调用url上传附件

public static void httpConnectionUpload(String fname,String savepath,InputStream ins) {

try {

/****urlStr为http://localhost:7001/DOCLINKS/uploadfile.jsp**/

String urlStr=PropertiesHelper.getValue("httpconn.upload.url");

URL url = new URL(urlStr);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setChunkedStreamingMode(1024 * 1024);

conn.setRequestMethod("POST");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("Charsert", "UTF-8");

conn.setRequestProperty("Content-Type", "multipart/form-data;charset=utf-8;file=" +fname);

conn.setRequestProperty("filename", fname);//文件名

conn.setRequestProperty("savepath", savepath);//存储文件夹

OutputStream out = new DataOutputStream(conn.getOutputStream());

DataInputStream in = new DataInputStream(ins);

int bytes = 0;

byte[] bufferOut = new byte[1024];

while ((bytes = in.read(bufferOut)) != -1) {

out.write(bufferOut, 0, bytes);

}

in.close();

out.flush();

out.close();

} catch (Exception e) {

e.printStackTrace();

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值