2016-09-01 1 views
-2

私は、サーバーにファイルをアップロードしようとしていますが、私は、ファイル名はCが含まれているとして、そうすることができません:\ fakepath \ untitled1.doc次は私のjqueryのは、あるPHPのファイルアップロード、アヤックス&JSON

$(document).ready(function() 
{ 
    $("#save").click(function() 
     { 
      var id = $("#id").val(); 
      //alert(id); 
      if(id =="") 
       { 
        var method = "Add"; 
        id = ""; 
       } 
      else 
       { 
        var method = "Edit"; 
        id = id; 
       } 
      var title = $("#title").val(); 
      //alert(title); 
      var fname = $("#fname").val(); 
      var lname = $("#lname").val(); 
      var day = $("#day").val(); 
      var month = $("#month").val(); 
      var year = $("#year").val(); 
      var city = $("#city").val(); 
      var addr = $("#addr").val(); 
      var tel = $("#telno").val(); 
      var email = $("#email").val(); 
      var exp = $("#exp").val(); 
      var reg = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/; 
      var filename = $("#resume").val(); 
      if(Validate(title,fname,lname,day,month,year,city,addr,tel,email,exp,reg,filename)) 
       { 
        $.ajax(
         { 
           url   : "addResumeAjax.php", 
           type  : "POST", 
           dataType : "json", 
           data  : { 
                method : method, 
                id  : id, 
                title : title, 
                fname : fname, 
                lname : lname, 
                day  : day, 
                month : month, 
                year : year, 
                city : city, 
                addr : addr, 
                tel  : tel, 
                email : email, 
                exp  : exp, 
                filename: filename 
               }, 
          ContentType  : "aplication/json", 
          success   : function(response) 
                { 
                 $("#msg").html(response.message); 
                 cityBind(response.citydata,response.city); 
               }, 
          error   : function(err) 
                { 
                 alert(JSON.stringify(err)); 
                } 
         } 

        ) 
       }   
     } 
    ); 
} 
); 

親切に私はmistake.any助けをしていますどこにappriciatedされているガイド。

+0

jQueryで 'serialize()'関数を使用してください。それはあなたのすべてのデータをあなたのPHPページに運びます。 'form'タグに' enctype = "multipart/form-data"を宣言したことを確認してください –

+0

serialize()関数を使用した後は、filenameを除くすべてのデータをPHPファイルに転送します。私は警告ボックス –

答えて

0

これを試してみてください:

JS:

$('#upload').on('click', function() { 
     var file_data = $('#pic').prop('files')[0]; 
     var form_data = new FormData(); 
     form_data.append('file', file_data); // append more data in the same way 

     $.ajax({ 
       url   : 'upload.php',  // point to server-side PHP script 
       dataType : 'text',   // what to expect back from the PHP script, if anything 
       cache  : false, 
       contentType : false, 
       processData : false, 
       data  : form_data,       
       type  : 'post', 
       success  : function(output){ 
        alert(output);    // display response from the PHP script, if any 
       } 
     }); 
     $('#pic').val('');      /* Clear the file container */ 
    }); 

PHPを:

<?php 
    if ($_FILES['file']['error'] > 0){ 
     echo 'Error: ' . $_FILES['file']['error'] . '<br>'; 
    } 
    else { 
     if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name'])) 
     { 
      echo "File Uploaded Successfully"; 
     } 
    } 

?> 

これは私のために正常に動作します。

+0

を使用してデータをチェックしました。 "myFileJqry.js:134 Uncaught TypeError:formdata.appendは関数ではありません"のような例外がスローされます。 –

+0

上記のコードを使用してファイルをアップロードできます。あなたも私を助けてくれますか?...事前に感謝します。 –

+0

$ _REQUEST ['filed_name']を使用して任意のフィールドの値を取得し、それを使用します。 –

0

このリンクをチェックすると、あなたに役立ちます。

https://abandon.ie/notebook/simple-file-uploads-using-jquery-ajax

+0

Uncaught ReferenceError:ファイルが定義されていません –

+0

使用しているjqueryのバージョンは?私にあなたのhtmlファイルを見せてくれますか? –

+0

jQuery v1.11.0 | (c)2005年、2014 jQuery Foundation、Inc. | jquery.org/license –