本文目录一览:
- 1、上传控件 WebUploader 判断有没有上传成功
- 2、如何判断uploadify插件是否选择了文件
- 3、java 上传文件时判断文件是否存在怎么判断?
- 4、asp.net fileupload 判断文件是否过大
上传控件 WebUploader 判断有没有上传成功
该控件使用比较方便,但是准备做权限的时候确实让我头疼了。
默认如果啥也不处理,只要有返回数据就认为是成功,就算返回的是错误信息,也认为是成功了。
但是,在认为成功前会派送一个事件uploadAccept,这个事件是用来询问是否上传成功的。在这个事件中你可以拿到上传的是哪个文件,以及对应的服务端返回reponse。
//如:上传成功返回 {"success" :"1"} //如:上传失败返回 {"success" :"0"}
uploader.on("uploadAccept", function( file, data){ if (
data.success=="0") { // 通过return false来告诉组件,此文件上传有错。 return false; } });
response是个对象,如果服务器返回是json格式,那么正和你意,都已经解析好了,如果不是json格式,response._raw里面可以拿到原始数据。所以,webuploader对于后端返回的数据格式是没有要求的。
如何判断uploadify插件是否选择了文件
这里要说的问题是为了验证上传文件是否已经存在于服务器,就需要checkExisting这一选项,看页面JS代码如下:
'checkExisting' : '/static/js/plugins/uploadify/check-exists.php',
会交给check-exists.PHP后台文件来处理判断文件存不存在,最初的源文件是这样的:
就这么几句话,按常理来说,有了路径文件名是可以file_exists()判断文件是否存在服务器,但忽略了一个问题,就是如果自定义了上传文件存放的路径,如上所看到的floder:
若是这样的话,文件判断那就肯定是不存在的了,因为路径都不对了,肯定找不到该文件……,此时看到,既然文件名能够$_POST[]过来,那希望这个folder也能POST过来,那就来打印看看到底$_POST里面放了些什么,结果有些失望:
array (size=1)
'filename' = string 'OOOPIC_SHIJUNHONG_20090809ad6104071d324dda.jpg' (length=46)
就只有filename,什么都没了,接着还是不甘心,对JS不咋样的还是硬着头皮去看jquery.uploadify.min.js的源码,皇天不负有心人!找了好久终于找到了,相关代码如下:
原来这是已ajax提交过来的,其中的数据就只有filename,于是就想到把floder也传过去,修改:
data: {
filename: d.name,
floder: e.formData.folder
},
然后再在check-exists.php文件接收:
这样就大功告成了,可以判断文件是否存在了。
如下图:
java 上传文件时判断文件是否存在怎么判断?
下面是我做网站用过的,当时我们是判断用户上传的头像图片是否在tomcat服务器upload文件夹下存在:
String path1 = getServletContext().getRealPath("/"); // 获取服务器地址
File f = new File(path1+"upload/"+u_id+".jpg"); //此处你改为你要判断的地址,我们的是获取服务器地址/upload/id名.jpg
if(!f.exists()){//如果该图片文件不存在
src1="./upload/zg.jpg";//则用默认头像
}
else{ src1="./upload/"+u_id+".jpg";}
//如果存在,则用该用户上传的头像图片
//下面就是显示出这个图片啦
%
p class="STYLE2"基础资料/p
hr align="left" width="400"
pspan class="STYLE1"头像:/spanimg src="%=src1%" width="40"height="50"a href="webs/user/up_photo.jsp"修改头像/a/p
如果还不够详细请Q我,360307836
asp.net fileupload 判断文件是否过大
这种方法不对,楼上的方法也肯定不行的,
首先你要弄清除:
服务器在执行【if(FileUpload1.PostedFile.ContentLength1500000)】这条语句的时候,其实文件都已经传到服务器上了,明白了么?
当你点击那个【上传】按钮的时候,页面开始提交请求,并且把页面上的所有forms和PostedFile都传到服务器上,然后由服务器【http处理程序】负责创建page页面以及所有page页面的子控件树,同时,也封装了Request等等这些全局对象,接下来才开始执行页面里的代码:
if(FileUpload1.PostedFile.ContentLength1500000)
也就是说,当执行到以上代码的时候,文件早都已经传到服务器上了(或者超过大小报错),你可以试试:把值改成15,再传个20M的文件都会报错的,
这个只能通过js脚本在前台提交请求之前判断文件大小,
html xmlns=""
head
titletest/title
script type="text/javascript"
function getFileSize(filePath)
{
var image=new Image();
image.dynsrc=filePath;
alert(image.fileSize);
if(image.fileSize 15000000)
{
alert("文件太大!");
}
}
/script
/head
body
input type="file" name="file" size="30" onchange="getFileSize(this.value)" /
/body
/html
“怎么input type="file" name="file" size="30" onchange="getFileSize(this.value)" /
根本就没有onchange的方法啊?”
肯定有,没这个事件就怪了,