簡體   English   中英

如何在ajax jQuery文件中獲取tmp名稱?

[英]How to get tmp name in ajax jQuery file?

我正在通過 ajax 上傳圖像,在 ajax 調用期間,我想設置上傳文件的 tmp 名稱,但它返回undefined

這是我的代碼:

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;
  }
});

在這里,當我alert(imagetempname); ,它將返回undefined

您的問題是您試圖從 $_GET 超全局而不是 $_FILES 超全局訪問文件。

print_r($_FILES);

你的ajax也有問題。

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

否則,您只需像這樣檢查:

if(!empty($_FILES)) {

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

筆記

查看 code-jaffs 評論,該評論驗證了我上面的觀點,說明您的文件不會以您當前的方式上傳。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM