2015-06-18 49 views
2

我有我的jquery上傳插件的問題,我正在使用jQuery上傳文件插件版本:3.1.10從http://hayageek.com和問題是與我想要複製的文件名它到數據庫。在jQuery中獲取文件名上傳插件以HTML格式追加

我有textscheckboxes我的html表單有點複雜,等

form的部分看起來像這樣:

<form> 
    <input type="text" name="titlu" value="Marcel"> 
    <div id="incarcareImagine">Upload image</div> 
    <button type="button" onclick="showValues()">Publish</button>   
</form> 

     <script> 
     function showValues() { 
      var str = $("form").serialize(); 
      $("#results").html(str); 
      var dataString = "results="+ str; 
      $.post('motor/parser_incarcare.php',dataString,function(theResponse){ 
       //alert('data is sended to php'); //shows data to php response 
      }); 
      } 
     </script> 
<script src="js/jquery.uploadfile.min.js"></script> 
<script> 
     $(document).ready(function() 
     { 

      var settings = { 
       url: "upload.php", 
       method: "POST", 
       allowedTypes:"jpg,png,jpeg", 
       fileName: "myfile", 
       multiple: false, 
       onSuccess:function(files,data,xhr){} 
      } 
      $("#incarcareImagine").uploadFile(settings); 


     }); 
    </script> 

文件上傳插件是在這裏:https://rawgit.com/hayageek/jquery-upload-file/master/js/jquery.uploadfile.min.js

這上傳圖片成功的腳本是#incarcareImagine下的自動生成環節,如1). the_name_of_the_uploaded_file.jpg和本文下的進度條。

我的問題是如何將<form>一個孩子這樣的內部產生:<input type='hidden' name='image' value='the_name_of_the_uploaded_file.jpg'>

我upload.php的樣子:

$director_Img = "fisiere_pub/Img/"; 

if(isset($_FILES["myfile2"])) 
{ 
      $ret2 = array(); 

$error =$_FILES["myfile2"]["error"]; 
{ 

     if(!is_array($_FILES["myfile2"]['name'])) //single file 
    { 
     $fileName = $_FILES["myfile2"]["name"]; 
     move_uploaded_file($_FILES["myfile2"]["tmp_name"],$director_Img. $_FILES["myfile2"]["name"]); 
     //echo "<br> Error: ".$_FILES["myfile"]["error"]; 

     $ret2[$fileName]= $director_Img.$fileName; 
    } 
    else 
    { 
     $fileCount = count($_FILES["myfile2"]['name']); 
     for($i=0; $i < $fileCount; $i++) 
     { 
      $fileName = $_FILES["myfile2"]["name"][$i]; 
      $ret2[$fileName]= $director_Img.$fileName; 
      move_uploaded_file($_FILES["myfile2"]["tmp_name"][$i],$director_Img.$fileName); 
     } 

    } 
} 
echo json_encode($ret2); 
} 

所以最後我會有我的完整form和將準備通過ajax - serialize()發送這個完整的數據到我的php parser複製所有想要的數據到mysql database

預先感謝團隊!

+0

我有同樣的問題。你能解決它嗎? – Someone

回答

0

不知道爲什麼你需要做的(你就不能得到從PHP側的名字嗎?),但如果你真的想這樣做,你可以只沿的線條添加的東西:

function showValues() { 
    $("form").find("*[name=image]").remove(); 
    var field = $("<input type='hidden' name='image' value=''>"); 
    field.val($("form").find('input[type=file]').val()); 
    $("form").append(field); 
    var str = $("form").serialize(); 
+0

因爲在我的數據庫中,我想用一個單一的ID在一個查詢中創建所有記錄,所以這是一個自動上傳文件腳本,當我在腳本上放置一個圖像時,這會將她發送到php端上傳,但是當上傳時過程完成後,其他字段將不準備發送到我最後的mysql查詢 –

-1

由於您正在上傳到PHP文件並在PHP後端處理它,我們傾向於接受上傳,接受上傳重命名後,上傳文件夾中沒有衝突的文件名,然後從PHP返回到JavaScript。

function upload() { 
    do_upload(); 
    rename($file); 
    echo $filename; 
} 

然後從JavaScript回調(xhr),你有機會獲得呼應的名稱。

onSuccess: function(files, data, xhr) { 
    var filename = xhr.responseTxt // from php; 
    var field = $("<input type='hidden' name='images[]' value=''>"); 
    field.val(filename); 
    $("form").append(field); 
} 

這樣你就可以將文件名發送回php,並將它關聯到數據庫中。

+1

我的upload.php是echo作爲json_encode(),我不能得到正確的文件名。 –