拖放文件上传

2024-04-13

因此,我正在努力寻找我正在寻找的东西以及如何实现它。

我有一个基本的 PHP 文件上传器,用户按下自定义上传按钮,选择一个文件,然后使用 JS,检查更改(即用户选择文件),然后提交上传图像的表单美好的。

我现在还想要一个拖放上传区域。因此,用户可以从文件资源管理器中拖动图像并将其放置在指定位置(而不是整个页面),然后一旦放置该图像,表单就会自动与图像一起提交并使用相同的 PHP 处理。

这可能并且现实吗?


这绝对是现实的,并且无需使用任何第三方插件即可实现。

以下片段应该可以让您了解它是如何工作的:

掉落区域

$(".drop-files-container").bind("drop", function(e) {
    var files = e.originalEvent.dataTransfer.files;
    processFileUpload(files); 
    // forward the file object to your ajax upload method
    return false;
});

processFileUpload() 方法:

function processFileUpload(droppedFiles) {
         // add your files to the regular upload form
    var uploadFormData = new FormData($("#yourregularuploadformId")[0]); 
    if(droppedFiles.length > 0) { // checks if any files were dropped
        for(var f = 0; f < droppedFiles.length; f++) { // for-loop for each file dropped
            uploadFormData.append("files[]",droppedFiles[f]);  // adding every file to the form so you could upload multiple files
        }
    }

 // the final ajax call

       $.ajax({
        url : "upload.php", // use your target
        type : "POST",
        data : uploadFormData,
        cache : false,
        contentType : false,
        processData : false,
        success : function(ret) {
                 // callback function
        }
       });

 }

表格示例

<form enctype="multipart/form-data" id="yourregularuploadformId">
     <input type="file" name="files[]" multiple="multiple">
</form>

请随意使用类似的内容作为起点。您可以在这里找到对此的浏览器支持http://caniuse.com/#feat=xhr2 http://caniuse.com/#feat=xhr2

当然,您可以添加任何您想要的附加功能,例如进度条、预览、动画......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拖放文件上传 的相关文章

随机推荐

  • 异步方法上的 C# 实体框架错误

    我已经看到了这一点 但我遇到了另一个问题 我有这个服务类用于管理 ASP NET 身份角色 public class RoleService IRoleService private readonly RoleManager
  • 使用 Xptr 和 Function 调用 Rcpp 函数 - 仅 xptr 情况有效

    我正在尝试开发一个包 其中我需要输入用户的函数 可以使用定义Rcpp or in R 将其发送到另一个函数 在包内 struct并在那里处理它 当我使用Rcpp Xptr 即函数指针 代码可以工作 但同样不起作用Rcpp Function
  • python中的str性能

    在分析一段 python 代码时 python 2 6 up to 3 2 我发现str将对象 在我的例子中是整数 转换为字符串的方法几乎比使用字符串格式化慢一个数量级 这是基准 gt gt gt from timeit import Ti
  • Thrift 将可选转换为默认或必需

    我有一个节俭的结构 struct Message 1 optional int userID 将其更改为默认需求是否安全 struct Message 1 int userID 如果我知道它总是已设置 那么 需要 呢 如中所述这个答案 ht
  • 尝试在 OS X 上安装 Qt 时提示“您需要安装 Xcode 5.0.0”,但此版本太旧,无法使用

    我是一名 Windows Linux 开发人员 偶尔会为 OS X 进行构建 特别是在 Qt 中 我有一个在 Windows 上开发的简单 Qt 项目 我现在希望在 OS X 上构建它 我正在运行优胜美地 我已经安装了 Xcode 7 并尝
  • dplyr + ggplot2:无法通过管道进行绘图

    我想绘制数据框的子集 我正在使用 dplyr 和 ggplot2 我的代码仅适用于版本 1 不适用于通过管道的版本 2 有什么不同 版本 1 绘图正常 data lt dataset gt filter type type1 ggplot
  • 封闭类型族和奇怪的函数类型

    抱歉 我无法想象出更好的问题标题 所以请继续阅读 想象一下 我们有一个封闭的类型族 它将每种类型映射到它对应的类型Maybe除了他们自己 type family Family x where Family Maybe x Maybe x F
  • 在 PostgreSQL 上设置默认日期格式

    下午好 你们中的许多人可能已经知道这是可能的 例如 在 Oracle 中设置格式化函数使用的默认日期格式 即 to char 就像这样 ALTER SESSION SET NLS DATE FORMAT SYYYY MM DD HH24 M
  • 使用 ng-include 历史向后导航

    我开始使用 angularjs 开发一个单页 Web 应用程序 现在我正在定义导航 因此 我最终使用了 2 级导航 第一级 使用 ng view 进行主导航 第二级 使用 ng include 带有顶部和底部栏的子视图导航 这是我们的 iP
  • Google Maps Javascript API V3 - 如何删除自定义控件?

    我通过以下方式创建了自定义控制器http code google com apis maps documentation javascript controls html http code google com apis maps doc
  • Ansible:权限被拒绝(公钥、密码)

    我无法连接到 Ansible 中的主机 这是错误 192 168 1 12 无法到达 gt 改变 假 msg 错误 SSH 在连接过程中遇到未知错误 我们建议您使用 vvvv 重新运行该命令 这会导致 将启用 SSH 调试输出以帮助诊断问题
  • Yii2 迁移。表名中的百分号和括号

    我在github上浏览了yii2 oauth2 server代码 并在其中遇到了有趣的语法迁移文件 https github com Filsh yii2 oauth2 server blob master migrations m1405
  • 客户端非 ES6 浏览器上的 JSX Spread 属性

    ReactJS JSX 有一种可以轻松向组件添加大量属性的方法 var props props foo x props bar y var component
  • 定义深度/维度未知的 C++ 模板

    我想写一个n维直方图类 它应该采用包含其他 bin 等的 bin 的形式 其中每个 bin 包含最小和最大范围 以及指向下一个维度 bin 的指针 bin 的定义如下 template
  • PivotCaches.add 错误 5 - 2003 到 2010 宏

    我有一个 Excel 2003 xls 文件 我试图在 Excel 2010 中运行该文件 我首先将该文件另存为 xlsm 并将该目录添加为信任中心中的受信任目录 我收到错误代码 如下箭头所示 注意 如果我将数据透视表版本更改为 12 它仍
  • 在 C++ 中将 char 或 string 转换为 bitset

    我正在做 DES 加密的作业 但我似乎无法将字符串转换 更不用说将字符转换为位集了 谁能告诉我如何在 C 中将单个字符转换为位集 下列 char c A std bitset lt 8 gt b c implicit cast to uns
  • 如何在 PHP 中实现后台/异步 write-behind 缓存?

    我有一个特定的 PHP 页面 由于各种原因 需要将 200 个字段保存到数据库中 这是 200 个单独的插入和 或更新语句 现在显而易见的事情就是减少这个数字 但是 就像我说的 由于我不想费心去讨论的原因 我不能这样做 我没想到会出现这个问
  • 在交叉过滤器中过滤多个离散值

    有没有人有办法过滤交叉过滤器 https github com square crossfilter wiki API Reference多个值的对象维度 就像是 filterExact cash visa or filter cash v
  • Android - 在相对布局的ImageView中居中Textview

    我有一个带有 ImageView 的相对布局 并且希望在活动布局 xml 文件中将 TextView 置于 ImageView 的中心 这是图像视图 然后是我为 TextView 尝试过的内容 这是相对布局的内部
  • 拖放文件上传

    因此 我正在努力寻找我正在寻找的东西以及如何实现它 我有一个基本的 PHP 文件上传器 用户按下自定义上传按钮 选择一个文件 然后使用 JS 检查更改 即用户选择文件 然后提交上传图像的表单美好的 我现在还想要一个拖放上传区域 因此 用户可