【问题标题】:how to get the uploaded image path in php and ajax?如何在php和ajax中获取上传的图片路径?
【发布时间】:2012-08-19 07:37:32
【问题描述】:

我有一个简单的表格:

<input type="hidden" name="MAX_FILE_SIZE" value="2097152" id="MAX_FILE_SIZE">
<input type="file" name="file_upload" id="file_upload" class="picture_main">
<input type="submit" name="upload_picture" id="upload_picture" value="Submit">

我正在尝试 ajax 上传:

submit.on("click", function(){
        var file = $('#file_upload').val();
        uploadImageAjax(file);
        return false;
});

var uploadmageAjax = function(file)
{
    $.ajax({
        type: "POST",
        url: "/test/index/imageupload",
        data: {
            'file': file
        },
        dataType: "json",
        success: function (data) {
            console.log(data);
        }
    });
}

我返回的是,例如,file: "C:\fakepath\weirdan003-10.jpeg"

但我不确定fakepath 是什么!?

如果我只在 php 中做,我会得到这样的图像:

if (isset($_POST['upload_picture']) ) {
            $data = $formImageUpload->getValues();
            $pictureName = $data['picture'];
....

然后上传。

所以我想知道的是,如果 ajax 调用 POST 到该操作的正确文件,那么我可以将其上传到磁盘。

$('#file_upload').val(); 会持有 $_FILE 吗??

有什么想法吗?

谢谢

【问题讨论】:

    标签: php jquery ajax zend-framework file-upload


    【解决方案1】:
    var file = $('#file_upload').val();
    

    这将仅返回客户端计算机上文件的路径。出于安全原因,它像 c:\fakepath\file_name.ext 一样返回。如果我没记错的话,在一些较旧的浏览器中可以获得真实路径。但是,它仍然不能帮助您在服务器上获取文件。

    对于 ajax 样式上传,您可以使用一些您推荐的插件。或者只使用jQuery Forms 插件。它的工作方式与$.ajax 非常相似。

    现在,当文件正确上传后,您将在$_FILES中找到所有必需的信息

    在您的情况下,它将类似于$_FILES['file_upload'],其中“file_upload”是您的文件输入的名称。

    现在您可以使用move_uploaded_file 将其从临时存储中移出。对那个文件做任何你想做的事情

    编辑: 我看到你正在使用 Zend。查看this 了解如何在服务器端使用 FileUpload 元素。使用 Zend,您可以使用 FileUpload 方法而不是 move_uploaded_file

    【讨论】:

      【解决方案2】:

      jQuery ajax 不支持异步文件上传。见jQuery upload file using jQuery's ajax method (without plugins)

      如果要使用ajax文件上传,建议实现插件:

      【讨论】:

        【解决方案3】:

        对于客户端,我建议你使用插件。

        对于服务器端,您需要处理它以从流中读取。我认为valums git 上有一个完整的示例(客户端和服务器端)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-02-11
          • 2016-08-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多