Schreiben Sie eine relativ einfache Datei-Upload-Funktion. Sie müssen auf Hochladen klicken, um sie auf den Server hochzuladen.
Aber nach dem Testen schlägt der Upload immer noch fehl. Ich weiß nicht, was los ist. Unten ist mein Code:
html
<body>
<p class="toolbar1">
<a href="javascript:;" id="upload" class="a-upload mr10"><input id="changeFile" type="file" name="myFiles" id="">点击这里上传文件</a>
<p class="showFileName mr10"></p>
<button id="uploadBtn" type="button" class="btn btn-primary">上传</button>
</p>
</body>
php:
<?php
//做个路由 action为url中的参数
$action = $_GET['action'];
switch($action) {
case 'upload_file':
upload();
break;
}
function upload(){
// 获取上传的图片
$pic = $_FILES['myFiles']['tmp_name'];
$upload_ret = false;
if($pic){
// 上传的路径,建议写物理路径
$uploadDir = "../upload_files";
// 创建文件夹
if(!file_exists($uploadDir)){
mkdir($uploadDir, 0777);
}
// 用时间戳来保存图片,防止重复
$targetFile = $uploadDir . '/' . time() . $_FILES['myFiles']['name'];
// 将临时文件 移动到我们指定的路径,返回上传结果
$upload_ret = move_uploaded_file($pic, $targetFile) ? true : false;
}
return $upload_ret;
}
?>
js:
$(function() {
//上传图片
$('#uploadBtn').on('click',function(){
/*alert('444');*/
uploadFiles();
})
function uploadFiles(){
//上传文件接口
var uploadUrl = "./php/data.php?action=upload_file";
//选择的文件
var files = document.getElementById('changeFile').files[0];
var fileArr = [files];
//经过调试是不进ajax的
$.ajax({
type:"post",
url:uploadUrl,
data:fileArr,
dataType: 'json',
contentType: 'application/json;charset=utf-8',
success: function(data) {
console.log(data);
},
error: function(data){
}
});
}
}
Nach dem Debuggen wird Ajax nicht in js eingegeben. Ich weiß nicht, was das Problem ist. Bitte helfen Sie, danke!
Wie erhalte ich in PHP den Wert von $pic = $_FILES['myFiles']['tmp_name'];
$pic? Beim Debuggen habe ich festgestellt, dass dieser Wert nicht abgerufen werden kann. In js konvertiere ich die erhaltenen Dateiinformationen in ein Array und übergebe sie per Ajax-Post. Wie übergebe ich dieses Array an PHP?
你传的是混合型数据,把contenttype和processData改成false试试
processData 要设为 false
你使用Ajax 提交 需要 需要 使用 formData 配合