0
這是我在過去幾天中難以理解的一個難題。我在Drupal 7中使用了一種模式形式,因此在hook_form系統之外工作,嘗試上傳圖像。該表單通過ajax帖子提交,這阻止了我將該文件與帖子一起提交。我所做的是在ajax回調中,使用文件輸入創建一個新的表單元素,然後觸發一個提交,發佈到我的模塊定義的頁面。Drupal 7文件上傳(沒有hook_form)
原始輸入元素:
<input type="file" id="chooseImage" name"someImage" class="form-file">
JS觸發提交:
$.ajax({
type:'POST',
url:$('#originalForm').attr('action'),
data: data,
success: function(response) {
if (response.success) {
$('<form id="imageForm" method="POST" action="upload/image/'+response.data.nid+'"></form>').appendTo($('#imageSubmit'));
$('#chooseImage').appendTo($('#imageForm'));
console.log($('#imageForm'));
$('#imageForm').submit(function(e){
console.log(e);
alert('freeze! hammertime...');
});
//This should post the file but it isn't...
$('#imageForm').trigger('submit');
}
},
dataType:'json'
});
提交事件顯示了文件屬性就好了。但是,在後端,我的頁面回調結束...
function myModule_image_upload($param){
error_log('number of files = '.sizeof($_FILES));
}
我顯示沒有發佈文件。我猜測瀏覽器在.submit()運行後刪除了文章中的文件數據,如果是這種情況,我可能無力做任何事情,所以我必須在用於圖像上傳的掛鉤系統。
此外,無論這是真的在做什麼,它似乎永久打破監督,迫使我重新導入一個新的轉儲。
感謝您的答覆。是的,這是一件重要的事情,可能會在某些時候給我帶來麻煩,但不幸的是,它並沒有解決這個問題。 – user1496391 2012-08-16 00:15:38
而且會做到這一點(缺少=)。 – user1496391 2012-08-16 01:27:14