使用ajax上传文件
我一直在寻找我可以在这里找到的所有答案,但似乎没有人为我工作,不知道为什么。使用ajax上传文件
我试图使用ajax上传文件,但文件永远不会到达PHP中的$ _FILES数组,但我只将它添加到$ _POST数组中,但它不会让我获取名称或大小文件。我已经尝试了每个解决方案都在这里回答,但似乎没有解决我的问题,我不知道为什么,我觉得有什么我没有看到。如果任何人都可以帮助我,那真是太棒了。
HTML代码
<form name='formuploadgraphic'>
<input type='file' name='archivo1' id='archivo1' onchange='subegraphic()'>
</form>
THE JS/AJAX CODE
function subegraphic()
{
var formData = new FormData();
formData.append("archivo1", $("#formuploadgraphic")[0]);
$.ajax({
url: "subegraphic.php",
type: "post",
data: formData,
cache: false,
contentType: false,
processData: false,
async: true
})
.done(
function(data)
{
alert(data);
}
);
}
PHP代码
<?php
$upload_folder ='graphics';
$nombre_archivo = $_FILES['archivo1']['name'];
$tipo_archivo = $_FILES['archivo1']['type'];
$tamano_archivo = $_FILES['archivo1']['size'];
$tmp_archivo = $_FILES['archivo1']['tmp_name'];
$extension = pathinfo($_FILES['archivo1']['name'], PATHINFO_EXTENSION);
$archivador = $upload_folder . '/' . $nombre_archivo;
echo $nombre_archivo;
?>
这是从PHP的答复如果我使用该代码:
“
通知:未定义指数:archivo1在C:\ XAMPP \ htdocs中\上线airpost \家\ subegraphic.php
通知:未定义指数:archivo1在C:\ XAMPP \ htdocs中\ airpost \上线家庭\ subegraphic.php
通知:未定义指数:archivo1在C:\ XAMPP \ htdocs中\ airpost \家\ subegraphic.php在线路
通知:未定义指数:archivo1在C:\ XAMPP \ htdocs中\上线airpost \家\ subegraphic.php
通知:未定义指数:archivo1在C:\ XAMPP \ htdocs中\ airpost \上线家里\ subegraphic.php
“
如果nyone可以告诉我的代码会有什么问题。 Thx提前。
PS:上传文件在php中为ON。INI
从代码Sn ippet你贴,你的jQuery选择指向一个undefined
元素
变化
formData.append("archivo1", $("#formuploadgraphic")[0]);
到
formData.append("archivo1", $("#archivo1").prop('files')[0]);
我刚刚测试了您的修复程序并且ID未修复,但它像99%的解决方案,问题确实是选择器,所以我尝试了不同的解决方案,直到我添加了[0],因为我一次只发送一个文件,这就像一个魅力。所以该行改为:formData.append("archivo1", $("#formuploadgraphic").files[0]);
,它的工作。好吧,我没有idead如何设置为答案中的代码,但它确实工作,所以非常感谢 –
KahnCerbero
我的坏,我错过了,当输入答案。我现在编辑了原始答案。 – tolujimoh
你有没有试图改变这一行
var formData = new FormData();
formData.append("archivo1", $("#formuploadgraphic")[0]);
要
var formData = new FormData($("#formuploadgraphic")[0]);
,并且还加入ENCTYPE = “的multipart/form-data的”到窗体属性
<form name='formuploadgraphic' enctype="multipart/form-data">
好吧,我实施了这两个更改,我仍然得到相同的回应,我似乎无法找到该代码的问题 – KahnCerbero
你试过[本教程(https://www.sanwebe.com/ 2012/06/AJAX文件上传与 - PHP-和jQuery的)?我也有兴趣回答你的问题,因为我手边有类似的困境。 – Pyromonk