首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AJAX / HTML 5上传文件

使用AJAX / HTML 5上传文件
EN

Stack Overflow用户
提问于 2013-03-13 07:25:22
回答 1查看 668关注 0票数 0

我正在尝试使用AJAX和HTML5来处理从客户端计算机到服务器上的文件夹的文件上传。

此时,用户可以在他们的机器上浏览文件并选择它。单击upload按钮是为了执行完成文件上传所需的脚本,这就是我遇到问题的地方。我不确定如何使用upload.php脚本继续编写此文件上传功能的代码。

我的问题是,假设服务器上的文件夹名为docs。在用户单击upload按钮后,如何将用户选择的文件下载到servers docs文件夹?

我很感谢你的建议。

首先要感谢大家!

JQuery

代码语言:javascript
复制
    $.ajax({
        url: 'upload.php',  //server script to process data
        type: 'POST',
        xhr: function() {  // custom xhr
            myXhr = $.ajaxSettings.xhr();
            if(myXhr.upload){ // check if upload property exists
                myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
            }
            return myXhr;
        },
        //Ajax events
        success: function(data){
            alert("OK");
            $('body').html(data);
        },
        // Form data
        data: formData,
        //Options to tell JQuery not to process data or worry about content-type
        cache: false,
        contentType: false,
        processData: false

    });

HTML

代码语言:javascript
复制
    <form enctype="multipart/form-data">
    <input name="file" type="file" />
    <input type="button" value="Upload" />
    </form>
    <progress></progress>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 07:49:31

我相信这段代码应该适用于你的设置。基本上,它会检查您是否在第一个if语句中上传内容。然后检查第二条语句中是否存在该文件。如果没有,它就会将文件移到一个上传文件夹中。

代码语言:javascript
复制
<?php
if ($_FILES["file"]["name"] != NULL) {
  if (file_exists("upload/" . $_FILES["file"]["name"]))
    echo $_FILES["file"]["name"] . " already exists. ";
  else
    move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
}
?>

请记住,.php脚本需要正确的权限以及您要将其放入的任何文件夹。我相信766应该这么做。

您还应该在ajax中添加一个错误。请在成功后添加以下内容

代码语言:javascript
复制
error : function(XMLHttpRequest, textStatus, errorThrown) {
  console.log('An Ajax error was thrown.');
  console.log(XMLHttpRequest);
  console.log(textStatus);
  console.log(errorThrown);
},
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15374223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档