自Web开发的冰级以来已经完成上传文件。实际上上传文件使用HTML4和Iframe非常简单,甚至不需要页面刷新以及前端的0行代码,显然你赢了’获得一个进度条,但真的很重要吗?

以简而言之上传:

<form method="POST" id="frm_upload_logo" action="/ui/settings/logo" target="upload_logo_iframe" enctype="multipart/form-data">
 <input type="file" name="logo">
</form>
<iframe src="/blank.html" name="upload_logo_iframe" class="upload_frame"></iframe>
 
<script>
        $("iframe[name='upload_logo_iframe']").load(function(){
            if ($(this).contents()[0].URL.indexOf('/blank.html') == -1)
            {
                // Upload is complete, do something
            }
        });
</script>

So… Html5

寻找一种实现桌面删除文件上传的简单方法,用于Cakemail,我面临了2个问题。一个,一世’m不确定任何人都在使用gmail的Web开发人员旁边上传。而且,我目前的实现需要0行代码&在每个浏览器中都是稳定的。当我拿到这个坚实的解决方案时,我甚至考虑在旧浏览器中使用不同的行为实现失败点吗?

拖动,真的吗?

试图寻找关于拖放文件的有用性的文章API是徒劳的,您只能通过在50种方式中讨论实施的文章来打招呼。唯一还有什么要做的?如果他们曾经在浏览器中拖动了一个文件,请询问朋友。响应是压倒性的,0次尝试过。

坦率地说我,当我这样做时,我不’t find it’也很有经历,即使是,我同意,有时候是方便的。它始终涉及将我的Finder窗口带到最前沿,关闭我打开的多个查找器,移动查找器,以便至少在上传框的一部分中看到,最后将其拖动到部分显示的框中。不是我会考虑伟大的用户体验。

真的不确定这是帮助普通用户导航您的应用程序,在另一个窗口中查找其文件夹中的文件也会完全从您的应用程序中获取它们。就个人而言,我认为我们就像它一样,因为我们在我们的Web应用程序中拖动文件并运作,而不是因为它’s really useful.

HTML5文件API

然后有时需要上传大文件,现在您可以使用HTML4上传有点麻烦。没有API在上传时提供进度,可以说可以很有用。但在这个时代的这个时代,你需要真正认为大多数人在每秒300k上传的时候是什么大文件我很少看到一个用例(在视频和大归档文件旁边)。

I’我说你应该绝对不实现那些API’s? I’不,如果您有时间在您的手上有时间,并且希望在您的应用程序中添加一些替代路径,或者您正在上传大文件,那么您需要一个进度栏而不是GIF加载程序。但我认为你应该真的考虑这些整合的有用性。

最后,您仍然必须默认为HTML4表单上载,因为IE用户并具有2个实现相同的功能,始终添加复杂性,测试时间和错误。

在上传文件用户体验设计上有任何文章或纸张?请在评论中发布他们,我很乐意阅读它们!

4 thoughts on “html5拖动’n删除文件上传,Shenanigans仅由开发人员使用?

  1. 当您当然不是需要特定功能的第一个人时,可能存在已经存在的库。无需重新发明轮子。我最近需要在我们的CMS中进行大量上传输入并尝试了Plupload(http://www.plupload.com/)。文件上传是一个复杂的物质,我更愿意使用这样的库,因为它可能会解决我不知道的错误,如果我试图从头开始发展它。它具有HTML4浏览器的回退,剥离了下降功能(没有截头,所以没有进展),它几乎所有你’d需要开箱即用。它不支持拖放拖放,但如果您需要它’很容易找到已经完成它的人的教程。

    也就是说,我同意拖放不是必备的功能。它甚至可能比好处更弊…没有什么比在Gmail中写一封长的电子邮件,拖放它的拖放图像并查看您的浏览器加载主窗口中的图像而不是将其添加到电子邮件中。你回来了,你的长电子邮件已经消失了。他们现在使它们更好,因此您的视觉指示您即将删除内容中的图像。尽管如此,那种特征需要100%测试,无臭虫和防弹,否则它最好不要拥有它。

    1. 然后,您将一个重要的功能发送到第三方,即使在未经测试的新浏览器中依赖工作,即使是IE10,从未考虑过旧的Plupload版本。

      此外,如果您使用Plupload仅适用于HTML4上传,我’对不起,但你在做错了。您介绍了数百线代码,以便为需要5行。

      2年前,Plupload的自定义实现也没有什么比所有浏览器更稳定(不会在IE7上加载文件夹窗口),我猜他们现在更好。

      1. 那个’对任何第三方库,来自TinyMCE和Plupload的真实,形成验证。毕竟,当您验证表单时,您很少(如果有的话)需要图书馆提供的每个功能,所以您还导入了数百行代码无关紧要。然而,您的表单验证脚本对很多人来说非常有用。

        使用任何第三方库始终存在风险。例如,您永远不知道他们需要多长时间更新以考虑新浏览器,如您所指出的那样。那’为什么你必须检查作者是多么严重,您也必须准备随时更改策略。

        诀窍是在自己的封装中实现任何功能性,以便您可以轻松切换解决方案。如果通过iframe实现文件上载,则应由对象管理所有进程,例如返回$。结果中的TMP服务器文件名。如果那么,您需要切换到任何库或自定义解决方案,您需要的就是实现相同的接口,您的代码仍将起作用。

        文件上传是我最近要处理的情况。我的旧方法涉及一个由JSON编码的响应加载PHP的JavaScript生成的不可见iFrame。除了文件如此之大的情况下,它一直在工作多年,除了我需要截头和进步。那’是我转换为plupload的主要原因,它工作得很好。我当然不是’要说iframe不是一个好的解决方案,它是。但是,如果您需要更复杂的解决方案,是的,是那里有图书馆可以依赖于此。

      2. Plupload和Tinymce之间存在失败的巨大差异,在创建像TinyMCE这样的意义上是艰难的并且需要时间,HTML4上传就是相反的,它’s easy.

        就像我在文章中说上传大文件是使用更复杂的技术有意义的情况之一。被称为Plupload在他们的回购中获得了244个问题,对我来说这么说,但如果你可以拥有该代码,一切都更好。

评论被关闭。