模拟将本地文件上传至外服务器

当前项目地址localhost:8080/qvod
文件上传地址localhost:9090/img
(可将当前TomCat文件复制一份,将复制的那份更改xml文件相当于外服务器)

建立一个jsp文件:
<a href="${pageContext.request.contextPath }/UpFile.jsp">上传图片</a>

建立Upfile.jsp:body内容如下
<form action="${pageContext.request.contextPath }/fileUpServlet2" 
method="post" enctype="multipart/form-data">
		<input type="text" name="mytext"> <br>
		<input type="file" name="headPicure"> <br>
		<input type="submit">
	</form>

注意:因为是上传文件,enctype一定要修改为multipart/form-data 提交方式也要更改为post

之后建立名字为fileUpServlet2的Servlet

重写doGet方法:

	DiskFileItemFactory dfif = new DiskFileItemFactory();
	ServletFileUpload sfu = new ServletFileUpload(dfif);
	try {
		List<FileItem> items = sfu.parseRequest(request);
		for (FileItem item:items) {
			if (item.isFormField()) {
				System.out.println(item.getFieldName()+"========"+item.getString("UTF-8"));
			}
			else {
				String uuid = UUID.randomUUID().toString();
				String imgPath =(String) this.getServletContext().getAttribute("imgBasicPath");
				String imgName = item.getName();
				if (item.getSize()>0) {
					String savePath = imgPath+"/"+uuid+imgName;
					Client c = Client.create();
					WebResource res = c.resource(savePath);
					res.put(item.getInputStream());
				}
			}
		}
	} catch (FileUploadException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}`

需要注意的是:因为之前文件的解码类型是multipart/form-data与默认的提交类型不一样,因此正常的reuqest.getparameter()等方法就不能取到结果,文件上传需要专门使用文件上传类也就是DiskFileItemFactory 和ServletFileUpload

运行前两个虚拟主机确保开启状态,运行结果如下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值