开发文件上传功能老出错! 请问是什么原因??
mmrns
2008-04-03
我的代码如下:
gsp页面上: <g:form action="/spps/upload/upload" enctype="multipart/form-data"> <input type="file" name="myFile" /> <input type="submit" value="Upload! " /> </g:form> controller上: import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartFile; class UploadController { def index = { } def upload = { // get our multipart MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("myFile"); file.transferTo( new java.io.File( "/local/server/path/${file.name}" ) ) } } 显示HTTP ERROR: 404 请问是什么原因?? |
|
justjavac
2008-04-05
404表示文件或路径没有找到,你确定所有的路径正确无误,或者增加print语句进行跟踪,最好是用log.
是不是你的服务器没有这个路径呀"/local/server/path/",java是不会自己建立文件夹的, 你要再服务器上自己建好. |
|
biaoming
2009-01-16
楼主,我也遇到这个问题。开发期间上传好好的,一打包上传服务器,就提示404,你解决了吗?
|
|
laobu
2009-01-16
<g:form action="updateAtta" method="post" enctype="multipart/form-data" target="hidden_frame">
<table> <tr> <td> <b>插入附件:</b><font color="red">支持JPG/GIF/MP3/SWF/WMA/3GP等文件</font><br/> 附件标题:<input type="text" size="35" maxlength="100" id="atitle" name="atitle" value=""/> </td> <td> 可以是远程文件,如: http://www.englishto.com/bownt.jpg<br/> 文件地址:<input type="text" size="28" maxlength="100" id="remotetext" name="remotetext" value=""/><input type="file" size="0" id="fileAtta" name="fileAtta" style="width:0px;" onpropertychange="checkFile()"> </td> </tr> <tr><td align="right"> <td align="left"><input type="submit" value="添加附件"></td></tr> </table> <iframe name='hidden_frame' id="hidden_frame" width="0" height="0"></iframe><br/> </g:form> --------- Controller ----------- def updateAtta = { ..... } 这个是我做的! 正常. action 只填 action 名就可以了.不过全路径. |
|
biaoming
2009-01-17
我试过你的了,也不行,还是出现404。但我大概知道哪问题。
我用jsecurity-0.3插件,取消这插件就没问题,用上这插件问题就来了。后来还试用试把form的enctype="multipart/form-data" 删除,还用jsecurity,此时也能提交到action,只是文件传不到后台。我发现是jsecurity的问题。 初步判断,grails文件上传时用了MultipartHttpServletRequest,但jsecurity有自己的JSecurityHttpServletRequest,不知道是不是这作怪,但很郁闷,用grails run-app测试一点问题也没有,只有打包放到tomcat时才这样。现在在这步卡着我整个项目的进展,希望大家出手相助。 |
|
biaoming
2009-01-17
郁闷,找到原因。action参数问题。
action="/test/sava?domain=biaoming"就报如下错误: groovy.lang.MissingMethodException: No signature of method: org.jsecurity.web.servlet.JSecurityHttpServletRequest.getFile() is applicable for argument types: (java.lang.String) values: {"myFile"},如果把?后删除就好好的 但如果用urlmapping就报404错误。 |
|
biaoming
2009-01-19
最终的解决,把参数都放到隐藏域
|