找到原因了,函数调用的时候参数顺序搞错了,导致的问题
找到答案了,给函数传参数不能传递哈希值:md5(uniqid(microtime(true),true));
以及$destination移到函数体内就好了
if(!is_unloaded_file($fileInfo['tmp_name'])){
exit('文件不是通过HTTP post方式上传上来的');
}
//此处错误,is_uploaded_file()
这个不是错,是notice注意,PHP是弱类型语言,变量可以不声明直接使用
解决办法较多:
1在php文件最前面添加error_reporting(E_ERROR | E_WARNING | E_PARSE);//屏蔽一下
2可以通过配置PHP配置文件中error_reporting=E_ALL&~E_NOTICE,重启服务器就没问题了
3最简单的方法是在$mes前面加一个@符号 来屏蔽一下
可以,说的是如果上面没有进行权限定义的话可以在下方用chmod()进行权限定义
服务器php.ini中关于文件上传的配置不同于本地
struts.multipart.maxSize struts.multipart.maxSize 默认限制为2M;
解决方法:
在struts.xml中加入 <constant name="struts.multipart.maxSize" value="10000000"/> ,大约10M
原因:maximumSize须小于 struts.multipart.maxSize,而默认值不足5M,所以修改maximumSize无效,
应先修改 struts.multipart.maxSize
即,
若 上传文件大小<maximumSize ,上传成功
若 maximumSize<上传文件大小< struts.multipart.maxSize , 若 上传文件大小 > struts.multipart.maxSize ,
Struts has detected an unhandled exception:
没错。php是区分大小写的
pathinfo($_FILE['name']['name'])
证明没有读取到服务器端的临时文件
^-^...
这个不会把,现在还不能看嘛?
^-^...
嗯 因为你超过了表单以POST方式发送数据的最大值了,文件就没有成功上传到服务器
你可以查看下PHP配置文件中post_max_size选项的值
^-^...
或者你直接使用插件,有好多类似的插件都可以
^-^...
不是 是因为超过了post_max_size选项的值,你可以配置下PHP的配置文件的这个选项,把它改大
还有就是upload_max_filesize选项的值
^-^...