7

我正在尝试创建一个“上传文件,并将电子邮件作为附件”表单,在该表单中,文件在被选中后开始上传(如 Gmail),然后再发送电子邮件。我还想实现一个进度条来显示上传的状态。

应该有各种各样的例子,但我就是找不到!

您是否知道任何示例、教程、插件、帮助程序,或者您自己做过这些并想分享一些代码示例?

谢谢!

4

7 回答 7

7

看一下

还有一个将 fancyupload 与 Zend Framework 集成的示例:虽然 fancyupload 是基于 mootools 的,但您可以从所解释的内容中学习。

注意:和fancyupload 一样,uploadify 使用flash。但是,当闪光灯不可用时,它会降级。

于 2009-12-14T10:38:43.990 回答
4

尝试使用支持 ajax 上传的 jQuery表单插件,可以在提供的链接上找到示例。Zend 框架有一个jQuery 助手

于 2009-04-13T09:38:24.070 回答
3

正如其他人所建议的,Jquery 有你需要的插件。

一个简单的 iframe 就可以了,进度条需要APC

这是一个“经过大量测试”的解决方案,例如 cms Drupal使用它(不知道是否使用 jquery,但我确定 iframe 和 APC)。

一些教程:

使用 APC 在 PHP 中创建上传进度条

使用 APC 在 PHP 中创建上传进度条:第 4 页中的 js/Ajax 部分

每个 APC + jQuery 上传 con 进度条(意大利语)

使用 PHP5、APC 和 jQuery 上传进度条

HOWTO:PHP和jQuery上传进度条

PHP中使用AJAX进度条的异步文件上传

Zend 框架:文档(第 21.1.5 章。文件上传进度)

编辑

我不会发布代码,因为没用;只需按照我发布的教程之一(例如第一个教程),您就会找到所需的所有代码以及对 cose 所做的完整解释(这比代码本身更重要,恕我直言)。

[旧约]

停止这场愚蠢的向下/向上选票战争。我们来这里不是为了赢得愚蠢的名声,而是为了在编程技巧上互相帮助,对吧?

我没有否决所有建议 Flash 解决方案的人,只是安德鲁的回答是不正确的,而不是对 swf '问题'的有用分析。

关键不是我不喜欢 flash,而是 flash 对于其他类型的问题(视频、音乐等)很好(不可或缺),但不是处理文件上传的可靠解决方案,这些事情可以通过 Javascript 轻松完成和 php 本身(使用 APC,如果您不能在服务器上使用 APC,则使用“闪存解决方案”)。

使用 swf 对象,您只需要希望处理它的 'api' 满足您的所有需求,否则.. 他们会给您源 (.fla) 文件吗?你有 adobe flash 的许可证,以及编辑它的知识吗?您是否准备好在每次您喜欢的上传需要更简单的修改时都这样做?你同意我的观点,找到 js 或 php 的帮助比寻找 flash 的帮助最容易?

这就是为什么我不喜欢这类问题的闪存解决方案。

然后,请随时让您对我投反对票,我在这里学习不要获得愚蠢的代表点。

[/OT]

于 2009-12-14T20:35:01.777 回答
2

我建议你用 jquery uploadify.com。该示例在网站上。您可以使用此 jquery 插件并将文件存储到数据库中(可能是临时表)。当用户发送电子邮件时,您将获取文件,将其附加并从数据库中删除。

PS:如果您有一些会话问题,请使用:zend framework loss session

于 2009-12-10T16:16:29.760 回答
0

你看过http://digitarald.de/project/fancyupload/吗?似乎可以满足您的要求。

于 2009-12-14T05:49:00.887 回答
0

SWFUpload看起来很有希望:

优点:

  • 在对话框中通过 ctrl/shift-selecting 一次上传多个文件
  • 所有事件的 Javascript 回调
  • 在上传开始前获取文件信息
  • 使用 XHTML 和 css 样式上传元素
  • 使用 HTML 上传文件时显示信息
  • 无需重新加载页面
  • 适用于所有支持 Flash 的平台/浏览器。
  • 如果 Flash 或 javascript 不可用,则优雅地降级为正常的 HTML 上传表单
  • 在上传开始之前控制文件大小
  • 仅在对话框中显示选择的文件类型
  • 排队上传,在开始上传之前删除/添加文件

甚至还有一个SWFUpload jQuery 插件可以让使用 SWFUpload 变得更加容易,还有一个关于如何使用 SWFUpload jQuery 插件通过进度条进行多文件上传的教程

缺点:

需要闪存。=/

另外,根据这篇博文

许多人在将 SWFUpload 与 Zend Framewok 一起使用时遇到的一个问题是,会话在上传过程中经常丢失。

但是作者提供了一个在使用 SWFUpload 和 Zend Framework 时丢失会话的解决方案。这也是使用 SWFUpload 和 Zend Framework 时丢失会话的 Stack Overflow 解决方案

于 2009-12-14T19:45:47.950 回答
0

只是一个非常重要的注意事项 - 当使用 Flash 上传器时,文件 mime 类型不会传递给服务器,所有文件都将是 application/octet-stream - 这意味着您需要利用其他方法来找到真正的类型......也许exe文件已上传!

于 2010-11-28T14:22:46.027 回答