2011-10-18 60 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