2011-10-18 36 views
0

我正在使用mootools请求将图像数据推送到服务器以导入图像。我的问题是如何在完成请求之前确定图像路径是否有效?检查上传前图像是否有效 - mootools

这里就是我有now--

http://jsfiddle.net/sTbFb/1/

function doUpload(){ 
    var remoteFile = document.id('uploadRemote').get('value'); 
    var imageRequest = new Request({ 
     url:'index.php', 
     method: 'post', 
     data: 'path='+remoteFile, 
     onRequest: function() { 
     console.log(remoteFile); 
     var myimage = Asset.image(remoteFile, 
      { 
      //onError: imageRequest.cancel() // <-- this doesn't work either 
      onError: this.cancel() 
      } 
     ); 
     }, 
     onSuccess: function(response) { 
     alert(response); 
     } 
    }).send(); 
} 

document.id('submit').addEvent('click', function(){ 
    doUpload(); 
}); 

我试图用Asset.image测试一个路径是真正的image--那么如果它不是,取消请求。但是,它没有解决问题。

任何提示我做错了什么?谢谢!

回答

1

您无法从<input type="file" />获得所选文件的路径。因此,在上传之前,您将无法加载它。你能做的最好的是检查文件扩展名。


编辑:问题也许是这一行:

onError: this.cancel() 

它应该是:

onError: function() { 
    imageRequest.cancel(); 
} 
+0

它不是一个文件upload--它只是一个路径。这个想法是,人们可以添加一个远程链接到服务器上的托管图像(如果你喜欢,可以使用热链接),并且在验证它是一个图像并且可以访问后,它会被插入到图像表中。 – julio

+0

来自teh fiddle - julio

+0

@julio - 'onError'需要一个函数,但是您要为其分配函数调用的结果。看到我的答案编辑。 – gilly3