2016-03-21 6 views
-1

私はajaxで画像をアップロードしていますが、ajax呼び出し中にアップロードされたファイルのtmp名を設定したいのですが、undefinedを返します。ajax jQueryファイルでtmp名を取得するには?

これは私のコードです:

ここ
function imageIsLoaded(e) { 
    $("#file").css("color", "red"); 
    $('#image_preview').css("display", "block"); 
    $('#previewing').attr('src', e.target.result); 
    //$('#previewing').attr('src', imagetempname); 
    $('#previewing').attr('width', '150px'); 
    $('#previewing').attr('height', '150px'); 
    //alert(e.target.result); 
}; 

$("#file").change(function() { 
    $("#message").empty(); // To remove the previous error message 
    var file = this.files[0]; 
    var imagefile = file.type; 
    var imagename = file.name; 
    var imagetempname = file.tmp_name; 
    var match = ["image/jpeg", "image/png", "image/jpg"]; 
    if (!((imagefile == match[0]) || (imagefile == match[1]) || (imagefile == match[2]))) { 
    $('#previewing').attr('src', 'noimage.png'); 
    $("#message").html("<p id='error'>Please Select A valid Image File</p>" + "<h4>Note</h4>" + "<span id='error_message'>Only jpeg, jpg and png Images type allowed</span>"); 
    return false; 
    } else { 
    var reader = new FileReader(); 
    reader.onload = imageIsLoaded; 
    reader.readAsDataURL(this.files[0]); 
    document.getElementById("imagename").value = imagename; 

    alert(imagetempname); 
    document.getElementById("imagetmpname").value = imagetempname; 
    } 
}); 

I alert(imagetempname);、それはundefinedを返しますとき。

+0

「imageIsLoaded」はどこに定義されていますか? – Rayon

+0

コードをインデントしてください。 – Jolta

+0

'' 'file.temp_name'''は何になると思いますか? temp_nameはphpの属性で、tempディレクトリに画像がアップロードされたときに利用できます。あなたは何を得ようとしているのですか?あなたはファイルをアップロードしていません。これはjavascriptで利用できません。それはサーバー側です(phpで利用可能です)。 ajaxを使用して画像をアップロードし、ajax要求の応答としてtemp_fileをクライアントに送信することができます。 –

答えて

0

あなたの問題は、それが保持される$ _FILESスーパーグローバルではなく、$ _GETスーパーグローバルからファイルにアクセスしようとしていることです。

print_r($_FILES); 

あなたのajaxにも問題があります。

function change(val){ 
$.ajax({ 
    url:"filecheck.php?id=" + val, 
    type: "post", 
    data: $('#yourformid').serialize() 
    success:function(res){ 
     alert(res); 
    } 
});} 

そうでなければあなたはこのように確認したい:あなたのファイルがアップロードされませんという内容の上に私のポイントを検証コードjaffsコメントで

if(!empty($_FILES)) { 

$name = $_FILES['file']['name']; 
$tmp = $_FILES['file']['tmp_name'];} 

NOTE

ルックあなたは現在これをやっています。

関連する問題