javaweb文件上传

jsp中标签input type=“file” 可以实现文件上传

<form>

......

<input type="file" name="iconField" class="file" >

......

</form>

当提交表单的时候file会被加入到httpservletrequest中

java端代码:我使用的是springmvc 这边是我实现图片上传的实现,和文件上传其实是一样的。

public Result uploadPic(HttpServletRequest req, String fileField) {
		Result result = new Result();
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) req;
		MultipartFile file = multipartRequest.getFile(fileField);
		FileOutputStream outputStream = null;
		String filename = "";
		String iconfullpath = "";
		if (file != null && file.getSize() == 0) {
			// 表示用户没有选择图片,使用的是默认图片
			iconfullpath = saveDefalutIcon(req);
		}
		if (file != null && file.getSize() > 0) {
			try {
				if (file.getSize() > 1000000) {
					result.setError(1, "上传失败:文件大小不能超过1M");
					return result;
				}

				String iconsdirpath = ICONDIR;
				filename = UUID.randomUUID() + "";// 将图片的名字唯一表示
				String originalname = file.getOriginalFilename();
				String pictype = originalname.substring(
						originalname.lastIndexOf("."), originalname.length());
				filename += pictype;

				byte[] iconbyte = file.getBytes();
				File iconsdir = new File(iconsdirpath);
				if (!iconsdir.exists()) {
					iconsdir.mkdir();
				}

				iconfullpath = iconsdirpath + filename;
				File iconfile = new File(iconfullpath);
				outputStream = new FileOutputStream(iconfile);
				outputStream.write(iconbyte);
				outputStream.flush();
			} catch (Exception e) {
				result.setError(1, "上传失败:文件保存出错");
				return result;
			} finally {
				if (outputStream != null) {
					try {
						outputStream.close();
						outputStream = null;
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		}
		result.setMsg(iconfullpath);
		return result;
	}



我这边是将文件上传到服务器上的文件系统中的。

代码中的参数fileField是jsp中file的name的值。

注意是使用

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) req;
MultipartFile file = multipartRequest.getFile(fileField);获取到file上传的文件。

这边获取上传文件在不同框架中是不同的,比如通过servlet实现的后台,这边要具体情况具体分析。


最主要就是获取到上传的文件,之后的操作其实就是java的IO操作。后面的代码可以忽略,大家根据自己的需求实现。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值