2010-03-17 59 views
-5

如何使用JavaScript我上传图片?如何上传文件?

+2

更多的努力,描述场景,你需要acheive什么?基于浏览器?你使用的是什么后端服务器平台?用户是否可以选择要上传的文件?为什么使用Javascript而不是HTML中的文件输入? – AnthonyWJones 2010-03-17 12:08:27

+2

http://tinyurl.com/ydjq655 加油! – 2010-03-17 12:09:45

+0

我想自动上传文件,因为文件名驻留在string.i数组中,我没有使用html bcoz的文件输入,它要求用户输入,我们手动对它进行操作,我不需要它。 – Freshers 2010-03-17 12:13:20

回答

2

假设你的意思是“在一个浏览器”和“没有闪光/ Java的/其他插件”。

  1. 让用户使用文件inputform选择一个文件。
  2. 呼叫形式对象

例如的submit method

document.forms.myForm.submit(); 

如果你想不离开当前页面,设置形式的target的iframe。

不要忘记设置enctype

+0

但是,这不会上传文件到服务器 – 2010-03-17 12:09:02

+4

@mplacona - 是的,它会。是什么让你觉得不对? – Quentin 2010-03-17 12:10:16

+1

..你忘了提及,JavaScript **不能上传任何文件在网络服务器上,因为它是客户端,并需要服务器端程序语言(PHP,Python,红宝石,无论)? – Strae 2010-03-17 13:05:28

2

你不能是简单的答案。

您可以使用服务器端语言(如PHP,ColdFusion,ASP等)来执行此操作,并使用Ajax与其通信并上载您的文件。

下面是一个简单PHP tutorialColdFusion tutorial以及

希望帮助您

+0

尽管您可以使用Ajax,但许多人认为Ajax和XHR是同义词,但您不能使用XHR,因此您可能希望更加明确。 – Quentin 2010-03-17 12:11:51

+0

@mplacona使用PHP我可以自动执行此文件上传过程。意味着我不希望该用户浏览文件上传。 – Freshers 2010-03-17 12:18:06

+0

但是如果你不选择它,你会上传什么文件? – 2010-03-17 12:20:37

0

看一看的AJAX工具包(google一下),并期待在asyncrhonus文件上传控制。您应该在浏览器的页面源代码中获取代码。

但是,在您使用的语言中使用为此定义的控件可能是一个更好的主意,因为JavaScript依赖于浏览器。该工具包页面的网页源代码中发现的JavaScript是broswer依赖,而是动态生成,因此它可以适应,不像普通的JavaScript。

0

Uploadify将上传一个百分比完成指标,但也需要flash。

1

如果你想要问怎么做AJAX风格,即不从页面导航,答案在于使用iframe。有几个例子,如果你谷歌它,但这里有一个让你开始:http://www.webtoolkit.info/ajax-file-upload.html

问题是,你不能通过常规的AJAX形式上传文件,所以你必须提交浏览器提交形式正确。这是通过一个隐藏iframe不提交的形式完成。

当然,你应该确保的形式作品(尽管刷新页面)时,JavaScript是禁用的。这被称为“渐进式增强”,并且始终是一个好主意。

表单的实际目标当然必须是能够处理文件上传的脚本,但对于JavaScript而言并非如此。 JS作为客户端,它不能(也不应该)直接写入服务器。