![](/img/trans.png)
[英]PHP and Ajax file upload - Can't get the tmp_name with $_FILES
[英]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.