Php 如何使用ajax发送上传文件?

Php 如何使用ajax发送上传文件?,php,jquery,ajax,Php,Jquery,Ajax,我想用ajax上传文件 我试过dropzone和ajaxupload,但这两个库都不起作用 所以我试着自己做。以下是我的输入类型文件代码: <input id="le_images" class="form-control" type="file" name="images[]" multiple> 现在我在upload.php上用上面的代码发送这个文件。但是我没有收到这个。你能告诉我哪里错了吗 你们能建议我怎么做吗?试试这个: $('#le_images').change(fun

我想用ajax上传文件

我试过dropzone和ajaxupload,但这两个库都不起作用

所以我试着自己做。以下是我的输入类型文件代码:

<input id="le_images" class="form-control" type="file" name="images[]" multiple>
现在我在
upload.php
上用上面的代码发送这个文件。但是我没有收到这个。你能告诉我哪里错了吗

你们能建议我怎么做吗?

试试这个:

$('#le_images').change(function(){
  var file_data = $(this).prop("files");
        $.ajax({
            url:"upload.php",
            type:'POST',
            data: formData,
            success:function(results){ 

            }
        });
});

中给出了一个使用Formupload进行图像更新的简单示例

var formData = new FormData($('form')[2]);
你可以将上传的图像移动到你的文件夹中,你可以在那里看到图像

在php中

$logoval=$_FILES['userfile']['name'];
                $target_file = "../".basename($logoval);
                move_uploaded_file($_FILES['userfile']['tmp_name'],$target_file);

如果您没有表单元素,请执行以下操作:

<script>
$(document).on("click", "#fileUpload", function() {
  var file_data = $("#le_images").prop("files")[0];
  var form_data = new FormData();
  form_data.append("file", file_data)

  $.ajax({
    url: "upload.php",
    dataType: 'script',
    cache: false,
    contentType: false,
    processData: false,
    data: form_data,
    type: 'post'
    success: function(data) {
      console.log(data)
    }
  });
});
</script>

<input id="le_images" type="file" name="le_images" />
<button id="fileUpload" value="Upload" />

$(文档)。在(“单击”,“文件上载”,函数()上){
var file_data=$(“#le_images”).prop(“文件”)[0];
var form_data=new FormData();
表单\数据。追加(“文件”,文件\数据)
$.ajax({
url:“upload.php”,
数据类型:“脚本”,
cache:false,
contentType:false,
processData:false,
数据:表格数据,
类型:“post”
成功:功能(数据){
console.log(数据)
}
});
});

我建议使用VanillaJS框架和AJAX技术来解决这个问题。此外,考虑到VanillaJS完全在浏览器中实现,并且不需要为项目

下载附加文件。 让我们深入了解代码,我将向您展示一个简单的示例:

HTML

<input class="form-control" type="file" name="images[]" onclick='uploadMyFiles(); return false;' multiple>

VanillaJS

function uploadMyFiles()
{
    var formElement = document.querySelector(".form-control");
    var formData = new FormData();
    for(var i = 0; i < formElement.files.length; i++)
        formData.append("File"+i, formElement.files[i]);
    var xmlHttp = new XMLHttpRequest();
        xmlHttp.onreadystatechange = function()
        {
            if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
                var responseText = JSON.parse(xmlHttp.responseText);
        }
        xmlHttp.open("POST", "--Your URL goes here");
        xmlHttp.send(formData);
}
函数uploadMyFiles()
{
var formElement=document.querySelector(“.formcontrol”);
var formData=new formData();
对于(var i=0;i
使用表单数据上传图像我没有表单元素的可能副本我仍然可以使用它??如果你没有表单你不能使用这种类型我没有表单元素我仍然可以使用它??
function uploadMyFiles()
{
    var formElement = document.querySelector(".form-control");
    var formData = new FormData();
    for(var i = 0; i < formElement.files.length; i++)
        formData.append("File"+i, formElement.files[i]);
    var xmlHttp = new XMLHttpRequest();
        xmlHttp.onreadystatechange = function()
        {
            if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
                var responseText = JSON.parse(xmlHttp.responseText);
        }
        xmlHttp.open("POST", "--Your URL goes here");
        xmlHttp.send(formData);
}