Jfinal 上传文件

前提准备:导包 cos-26Dec2008.jar


1.配置默认上传路径

public void configConstant(Constants me) {
		*
		*
		String path = JFinal.me().getServletContext().getRealPath("/");
		me.setUploadedFileSaveDirectory(path+"\\upload\\");
		//事实证明,不配置它也会默认创建一个名为upload文件夹将上传的文件放进去。
		//因此,上传路径的文件夹是不需要自己先创建好的。
		*
		*
	}
	
	
	
2.jsp页面(enctype="multipart/form-data" 是必须的)action 看自己的哪个,我这里是user路由下的upload方法中接收文件
<form action="user/upload" method="post" enctype="multipart/form-data">
    <div class="form-group">
      <label class="sr-only" for="inputfile">上传文件</label>
      <input type="file" id="inputfile" name="file">//其实就这句有用
   </div>
    </form>
    
    
 3.Control
 public void upload(){
		/*
		 * 自定义保存路径
		 *String realPath = JFinal.me().getServletContext().getRealPath("/");
		 *String savePath = realPath+"\\upload1\\";
		 *UploadFile fine1 = getFile("file",savePath);
		 **/
		// 不填写保存路径
		UploadFile fine = getFile("file");//file是jsp页面input type='file'的name
		render("/edit.jsp");
	}
4.最近做项目用这个出现的一些问题,也许是我对文件上传的理解不够深。
    1)如果upload方法上加了验证器Validator。真实的效果是文件上传之后才调用Validator。
    2)如果不是上传表单,form中就千万别加 enctype="multipart/form-data"
    3 务必将 getFile()方法凡在method的第一行位置。
    4)关于文件上传改名写了个方法 有点乱乱的 但是管用。。
    
    //上传新文件并删除旧文件,如果不上传应该就没有删除旧文件的必要吧。
    public static File renameFile(UploadFile uploadFile, String oldFilePath) {
		if (uploadFile != null) {
			File f = uploadFile.getFile();
			String houzhui = f.getName()
					.substring(f.getName().lastIndexOf("."));
			Long l = System.currentTimeMillis();
			String path = uploadFile.getSaveDirectory();
			if (oldFilePath != null && !"".equals(oldFilePath)) {
				oldFilePath = oldFilePath
						.substring(oldFilePath.indexOf("/") + 1);
				File old = new File(path + oldFilePath);
				boolean b = old.exists() ? old.delete() : false;
				System.out.println(b);
			}
			File fn = new File(path + "pic" + l + houzhui);//名字这里设置规则就好了
			f.renameTo(fn);
			return fn;
		}
有待补充、


转载于:https://my.oschina.net/Blanicy/blog/348212

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值