关于jfinal 上传

小窝他爹 发布于 2012/04/08 22:47
阅读 29K+
收藏 24
能否给个jfinal上传图片或文件的例子,或者简单介绍一下jfinal的上传方法也行。
加载中
2
JFinal
JFinal

JFinal Controller中提供了 getFile(...)与getFiles(...)系列方法,其中参数最全的两个方法如下:

public UploadFile getFile(String parameterName, String saveDirectory, Integer maxPostSize, String encoding)

public List<UploadFile> getFiles(String saveDirectory, Integer maxPostSize, String encoding)

除了以上两个方法以外,其它方法全是使用默认参数对这两个方法的转调,所以会用这两个方法足以。

    parameterName是指在表单中file表单域的名称,saveDirectory是指文件保有存路径,maxPostSize是指文件最大长度,encoding是指文件编码。

    getFile(...)系列方法获取单个文件上传,getFiles(...)获取多文件上传。

    如果需要使用getPara(..)系列方法,则需要先调用getFile或getFiles系列方法之一,因为multipart request的解析是在调用本系列方法时解析的。

    文件上传支持需要cos-26Dec2008.jar这个包,此包在JFinal发行包中有提供。另外还需要在上传表单中设置enctype="multipart/form-data"。

    JFinal文件上传与struts有不同之处,struts是将上传的文件先缓存到临时目录中,然后让开发者处理,通常是将文件移动或copy,而JFinal采用更加高效的方式,可以在上传后直接保存到目标目录下。

     总结JFinal处理文件上传,只需两件事:一是将cos-26Dec2008.jar包引入,二是在Controller中调用getFile或getFiles方法.

s
sixmonth
说得很全面啊,思路很清晰明了
熊猫你好
熊猫你好
回复 @熊猫你好 : 找到了 <!-- https://mvnrepository.com/artifact/com.jfinal/cos --> <dependency> <groupId>com.jfinal</groupId> <artifactId>cos</artifactId> <version>26Dec2008</version> </depende
熊猫你好
熊猫你好
回复 @JFinal : 我就是找不到才问的啊,你可以贴出来吗
JFinal
JFinal
回复 @熊猫你好 : 必然会有,在 jfinal 项目中 pom.xml 内容中找一下
熊猫你好
熊猫你好
请问cos-26Dec2008.jar这个jar包,在maven仓库里面有吗?
下一页
0
JFinal
JFinal
上传文件或者图片仅一行代码,在Controller 中使用getFile(...)系列方法即可
0
小窝他爹
菜根乱谭
菜根乱谭
回复 @JFinal : 不好意思,用你的测试一下
JFinal
JFinal
这几天有点忙,正弄两台新服务器的事,弄好后再详细说哈
0
byang
byang
maxPostSize这个参数为什么设置了不起作用啊~ 默认的是10*1024*1024  设置 为 200*1024*1024然后上传100M的文件 仍然说 Posted content length of 124359085 exceeds limit of 10485760超出限制大小
隐性精神病人
隐性精神病人
请问jetty下如何设置?
小窝他爹
小窝他爹
服务器限制吧
0
一千年前的人
一千年前的人

引用来自“JFinal”的答案

上传文件或者图片仅一行代码,在Controller 中使用getFile(...)系列方法即可

可以自定义 上传上去的文件的名字吗, 例如uuid.txt,而不是 test.txt, test1.txt,  test2.txt

String filesystemName = multipartRequest.getFilesystemName(name);

0
JFinal
JFinal

引用来自“一千年前的人”的答案

引用来自“JFinal”的答案

上传文件或者图片仅一行代码,在Controller 中使用getFile(...)系列方法即可

可以自定义 上传上去的文件的名字吗, 例如uuid.txt,而不是 test.txt, test1.txt,  test2.txt

String filesystemName = multipartRequest.getFilesystemName(name);

上传上去的文件名在html 页面中的 <input type="file" name="这里定义"。 JFinal 在后台能获取到,并能能改名 :)
0
一千年前的人
一千年前的人

引用来自“JFinal”的答案

引用来自“一千年前的人”的答案

引用来自“JFinal”的答案

上传文件或者图片仅一行代码,在Controller 中使用getFile(...)系列方法即可

可以自定义 上传上去的文件的名字吗, 例如uuid.txt,而不是 test.txt, test1.txt,  test2.txt

String filesystemName = multipartRequest.getFilesystemName(name);

上传上去的文件名在html 页面中的 <input type="file" name="这里定义"。 JFinal 在后台能获取到,并能能改名 :)

UploadFile file = getFile(); 得到文件的时候吗, 文件已经在服务器的硬盘上了。

明白你的意思, rename file....  我还想第一次save就指定名字呢,

 

0
JFinal
JFinal

引用来自“一千年前的人”的答案

引用来自“JFinal”的答案

引用来自“一千年前的人”的答案

引用来自“JFinal”的答案

上传文件或者图片仅一行代码,在Controller 中使用getFile(...)系列方法即可

可以自定义 上传上去的文件的名字吗, 例如uuid.txt,而不是 test.txt, test1.txt,  test2.txt

String filesystemName = multipartRequest.getFilesystemName(name);

上传上去的文件名在html 页面中的 <input type="file" name="这里定义"。 JFinal 在后台能获取到,并能能改名 :)

UploadFile file = getFile(); 得到文件的时候吗, 文件已经在服务器的硬盘上了。

明白你的意思, rename file....  我还想第一次save就指定名字呢,

 

暂时没实现这功能,如果要实现,我打算也是给 UploadFile 加一个方法叫 renameTo(...),这样灵活性更高 :)
0
菜根乱谭
菜根乱谭
如果我要做集群,文件直接存到后端文件系统呢,我还要收工删除硬盘上的文件。struts2上传文件的灵活此时体现出来了。
0
菜根乱谭
菜根乱谭
@JFinal 如果我要做集群,文件直接存到后端文件系统呢,我还要收工删除硬盘上的文件。struts2上传文件的灵活此时体现出来了。
返回顶部
顶部