当前位置: 首页 > 面试题库 >

使用Ajax将图片传递到PHP

韦泳
2023-03-14
问题内容

我试图将图像和标题字段值传递给PHP,通常我会使用$ _FILES数组直接用PHP处理文件上传,但我不确定如何使用ajax将其创建/传递给PHP。我的表格:

<form role="form" name="updateProductForm" id="updateProductForm" method="POST" enctype="multipart/form-data"> 
    <input name="imgOne" id="imgOne" type="file" title="Add Image">
    <a class="btn btn-primary" name="updateProduct" id="updateProduct">Update Product</a></div>
</form>

我正在尝试使用它传递给PHP:

$('#updateProduct').on('click', function() {
    try {
        ajaxRequest = new XMLHttpRequest();
    } catch (e) {
        try {
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser broke!");
                return false;
            }
        }   
    }
    ajaxRequest.open("POST", "../Controller/ProductController.php", true);
    ajaxRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    ajaxRequest.send("title=" + $("#title").val() + "&imgOne=" + $("#imgOne"));

    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            console.log(ajaxRequest);
        }
    }

});

在PHP中,我正在尝试这样做:

if (isset($_POST["edit"])) {
    $id = $_POST["edit"];
    $imgName = $_FILES["file"]["imgName"];
}

优素福


问题答案:

我在我的一个项目中做到了这一点,下面的代码对我有用。请根据需要对代码进行必要的修改。

我的表单按钮:

 <form name="upload_img" enctype="multipart/form-data" id="upload_img">
<input type="file" style="display:none" id="upload-image" name="upload-image"></input>
<button id="upload_image" type="button">Save</button>
</form>

我的JQuery / Ajax:

$('#upload_image').click(function()
{
    var form = new FormData(document.getElementById('upload_img'));
    //append files
    var file = document.getElementById('upload-image').files[0];
    if (file) {   
        form.append('upload-image', file);
    }
    $.ajax({
        type: "POST",
        url: "URL",
        data: form,             
        cache: false,
        contentType: false, //must, tell jQuery not to process the data
        processData: false,
        //data: $("#upload_img").serialize(),
        success: function(data)
        {
            if(data == 1)
                $('#img_msg').html("Image Uploaded Successfully");
            else
                $('#img_msg').html("Error While Image Uploading");
        }
    });
    //alert('names');


});


 类似资料:
  • 问题内容: Q.1我想将这种形式转换为ajax,但似乎我的ajax代码缺少某些内容。提交根本不做任何事情。 Q2。我还希望在选择文件时不等待提交时在更改时触发该函数。 这是JS。 和HTMl与php。 问题答案: 首先在ajax调用中包含成功和错误功能,然后检查它是否给您错误或什么? 您的代码应该像这样

  • 问题内容: 这次,我的问题是:我想使用文件输入上传图像,而不是刷新整个I网站,而是希望滚动一个简单的AJAX加载器,并在几秒钟后在同一页面中获得一个上传的图像。 。我尝试了google为我找到的一些脚本,但似乎没有使它们工作。 有人能够提供知识或在线帮助吗? 谢谢。 问题答案: 您可以轻松地使用ajaxupload将图像发送到服务器端,然后在函数成功返回时获取图像。

  • 问题内容: 我迷路了。如何将循环变量传递给AJAX .done()调用? 显然,如果我要这样做, 我 将在每次迭代中返回对象中的最后一个键。文档使我失望。 问题答案: 您可以使用闭包(通过自执行函数)来捕获每次循环调用的值,如下所示:

  • 问题内容: 目前,我正在使用Ajax来开发现有脚本,这是我以前从未使用过的东西。我在javascript文件中设置了一个变量,该变量从页面上的输入字段获取其值。我只需要使用Ajax将其发布到我的PHP页面,不知道从哪里开始, 我不确定您需要查看什么代码,但是我的javascript / AJAX代码是,我需要传递的变量是’var credoff’ 一定要采用这种格式吗? 问题答案:

  • 问题内容: 我尝试使用不带Django表单的Ajax上传图像。 它不返回错误。没关系,它保存在数据库“ name”和“ description”中,但不保存“ image” :( 我的代码: views.py models.py html javascript 问题答案: 这里的问题是Ajax代码,您不能直接通过变量发送图像。 为此,您必须创建FormData,然后将文件添加到其中,可以在此处找到

  • 问题内容: 我正在尝试将数据发送到我的PHP脚本来处理一些东西并生成一些东西。 在我的PHP文件中,我尝试检索专辑名称。虽然当我验证它时,我创建了一个警报以显示什么都没收到,但是我尝试通过 虽然会说undefined:/ 问题答案: 您正在发送POST AJAX请求,因此请在您的服务器上使用来获取值。我也建议您这样编写请求,以确保正确的编码: 或简称为: 如果您想使用GET请求: 或简称为: 现在