2011-03-02 17 views
1

我需要使用uploadify腳本發送數據時遇到問題。使用表單enctype,uploadify腳本的Javascript問題

第一次,uploadify腳本安裝正確,一切工作正常。但是我需要爲mysql和其他人使用上傳的數據(通過uploadify腳本)。

這裏是我的呼籲uploadify腳本代碼:

<script type="text/javascript"> 
$(document).ready(function() { 
$('#file_upload').uploadify({ 
    'uploader' : '/uplod/uploadify/uploadify.swf', 
    'script' : '/uplod/uploadify/uploadify.php', 
    'cancelImg' : '/uplod/uploadify/cancel.png', 
    'folder' : '/uplod/uploads/', 
    'auto' : true, 
    'multi' : false, 
    'onComplete': function(event, queueID, fileObj, response, data){ 
     var form = document.forms['form']; 
     var i = 0; 
     var el = document.createElement("input"); 
      el.type = "hidden"; 
      el.name = "test"; 
      el.id = "test2"; 
      el.value = fileObj.name; 
      form.appendChild(el); }, 
      'onAllComplete': function(event,data) { document.getElementById('form').submit();}, 
}); 
}); 
</script> 

我發現這個代碼在:http://www.uploadify.com/forums/discussion/7102/for-all-those-who-struggle-on-inserting-filenames-into-a-db-after-uploading/p1

它`有關文件上傳後如何回調。

這裏是uploadify.php代碼:

<?php 
    if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; 
    $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 
    move_uploaded_file($tempFile,$targetFile); 
    echo '0'; // Required to trigger onComplete function on Mac OSX (same for linux and  windows as it seems) 

    } 
    else { // Required to trigger onComplete function on Mac OSX (same for linux and windows as it seems) 
    echo '1'; 
    $video = $_POST[test]; 
    $textfield = $_POST[textfield]; 
    echo $video; 
    echo $textfield; 
    } 
    ?> 

這裏是形式,我需要創建我如何能得到這個工作。

<form id="form" name="form" method="post" enctype="multipart/form-data" action="uploadify/uploadify.php"> 
    <input id="file_upload" name="file_upload" type="file" /> 
    <input type="text" name="textfield" id="textfield" /> 
    </form> 

問題是在這裏,當我使用enctype="multipart/form-data" uploadify.php寫信給我0,當我刪除enctype="multipart/form-data"寫信給我1和that`s我需要什麼。正如你從代碼中看到的,我在uploadify.php結尾處放了一些愚蠢的代碼來測試它。

我認爲這是行不通的,因爲在javascript代碼中,我不會寫任何enctype。也許我錯了。 我試圖修改此:

  var form = document.forms['form'].enctype = "multipart/form-data"; 

,但沒有,

也是我想:

'onAllComplete': function(event,data) { document.getElementById('form').enctype; document.getElementById('form').submit();},

卻又什麼都沒有。歡迎所有幫助...

PS這是測試示例,對於此代碼,我不需要multipart/form-data,但在項目上測試,我需要multipart/form-data,因爲我正在測試uploadify腳本對於小視頻上傳,我需要爲每個視頻封面圖片。

回答

1

嘗試:的

var form = document.forms['form']; 
    form.enctype = "multipart/form-data"; 

代替

var form = document.forms['form'].enctype = "multipart/form-data"; 

但是當你不使用多上傳,我沒有看到任何需要2個步驟來做到這一點(第一個發送的文件,然後是完整的表格)。 見scriptData - 選項,它可以讓你同時發送,文件和其他數據:

'scriptData' : {'textfield':$('#textfield').val()} 
+0

這兩個選項過去了! Tnx :) – 2011-03-02 02:15:59