2011-08-07 37 views
2

這是我的情況。我有一個照片管理頁面,其中包括1)照片上傳模板2)照片細節模板3)特色照片模板4)照片庫5)動態導航欄。最初,照片上傳模板被設置爲提交給自己並使用cffile上傳新照片的表單。這很好,直到我試圖添加jquery回調刷新成功上傳的細節,特色照片和圖庫容器 - 但我發現在提交表單並上傳照片後,我附加到表單提交的任何其他函數按鈕不運行。因此,我決定將提交按鈕更改爲類型「按鈕」,並使用jquery .ajax()來上傳文件,這樣我就可以在成功時添加回調。我的代碼爲目前爲止的ajax方法是:coldfusion ajax jquery文件上傳不起作用

$.ajax({ 
      url: 'Administration/PhotoManagement/uploadPhotos.cfm', 
      type: 'POST',   
      data: { Add: 'add', 
       NewFilename: file_name, 
       shortName: short_name, 
       description: description 
      }, 
      contentType: 'multipart/form-data', 
      success: function(response, status, xhr){ 
        $('#upload').html(response); 
        // refresh gallery, featured pic, details 
        alert('success'); 
       } 
      }, 
      error: function(xhr, status){ 
       alert(status + ' ' + xhr.statusText); 
      }   
     }); 

在提交時,我得到500內部服務器錯誤。 Firebug控制檯報告數據正確發佈,但圖像沒有上傳,並且我沒有收到來自圍繞cffile的try/catch錯誤代碼的錯誤消息。

我沒有結婚的任何一種方法 - 我會很好回到原來的方法,如果我可以讓回調工作。有什麼建議麼?如果您認爲我應該繼續使用ajax方法,那麼您會推薦我怎樣解決我的錯誤?

編輯:在上面的代碼中,我已經添加類型:

無效的內容類型:多重/表單數據,因爲我已經從周圍的標籤我try/catch塊得到一個錯誤,應用程序/ x -www窗體-urlencoded;字符集= UTF-8

+0

500錯誤的詳細信息是什麼?使用螢火蟲或一些代理(查爾斯)來獲得細節。 – Lucas

+0

你有沒有嘗試過使用jQuery ajax文件上傳插件? – tsurahman

+0

盧卡斯,我無法在工作中使用代理服務器。 Firebug不會給我500錯誤的細節;它顯示了一個?本地主機後。刪除「type:multipart/form-data」會導致錯誤消失,但是我的cffile標籤會給我提供上面列出的「無效內容類型」錯誤。 – earachefl

回答

2

我有點遲到了,但我以前就用這個作爲一個AJAX fileuploader使用ColdFusion:

http://valums.com/ajax-upload/

當你下載的包有是一個使用Coldfusion的例子。

在JavaScript文件中,有一個函數具有名爲'onComplete'的回調方法(搜索qq.FileUploaderBasic)。在該回調方法調用自己的回調函數是這樣的:

onComplete: function(id, fileName, responseJSON) 
    { 
     uploaderCallBackFunction(id, fileName, responseJSON); 
    }, 

哪裏uploaderCallBackFunction是我寫的一個功能。如果你願意,你可以從CFC傳遞JSON到回調函數。

+0

嘿,這個鏈接似乎已經死了。你有另一個副本嗎? – Will

+0

@我很遺憾沒有一個副本,但是我會推薦一個我已經成功使用的更現代化的插件(不是用CF):https://github.com/blueimp/jQuery-File-Upload – AngeloS

+0

是啊我一直在考慮爲CF做一個服務器端。似乎是最好的選擇。不管怎麼說,還是要謝謝你。 – Will