文件上传下载(oreilly之MultipartReques)

上传篇代码片段:

import com.oreilly.servlet.MultipartRequest;
import java.util.Enumeration;

MultipartRequest multi = null;

ServletConfig config = super.getServletConfig();
int maxPostSize = 200 * 1024 * 1024;
multi = new MultipartRequest(request, filePath, maxPostSize, "utf-8");


fileName = multi.getParameter("fileName");
id = multi.getParameter("id");

Enumeration upLoadFiles = multi.getFileNames();

......
while (upLoadFiles.hasMoreElements()) {
		String fName = (String) upLoadFiles.nextElement();
		oldName = multi.getFilesystemName(fName);
	}

....
String exg = oldName.substring(oldName.lastIndexOf("."));
// System.out.println("--------" + exg);
String fileSep = System.getProperty("file.separator");
File oldfile = new File(filePath + fileSep + oldName)

 

下载篇:

if (null != action && action.equals("downFile")) {
			String filename = request.getParameter("fileName");
			// SmartUpload su = new SmartUpload();
			// su.initialize(config, request, response);
			// su.setContentDisposition(null);
			String downPath = FileUtil.getFileLocation(config, "");
			// // 下载文件
			// try {
			// su.downloadFile(downPath);
			// } catch (SmartUploadException e) {
			// // TODO Auto-generated catch block
			// e.printStackTrace();
			// }
			String encoding = System.getProperty("file.encoding");
			System.out.println("--------文件编码格式:-----------------" + encoding);
			String guessCharset = "utf-8";
			System.out.println();
			try { // 使用iso8559_1编码方式
				String isofilename = new String(
						filename.getBytes(guessCharset), "iso-8859-1");
				response.setContentType("application/octet-stream");
				response.setHeader("Content-Disposition",
						"attachment; filename=" + isofilename);
				ServletOutputStream out = null;
				out = response.getOutputStream();
				ServletUtils.returnFile(downPath + filename, out);// 下载文件
			} catch (UnsupportedEncodingException ex) {// iso8559_1编码异常
				ex.printStackTrace();
			} catch (IOException e) {// getOutputStream()异常。
				e.printStackTrace();
			}

		}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值