如何用javascript 模拟 上传文件

realliguangyu82 2012-04-13 11:57:33
如题:

比如我知道文件的具体位置e:\aaa.zip

然后我用javascript 还模拟 type file上传文件获取文件流

问题:由于<input type="file"/>这个标签只有你打开文件夹选中文件后,

提交页面在后台能获取文件流,如果你是手动修改value值得话,不会起作用

所以需要用javascript模拟这个操作,

打开文件对话框-》选中文件(已经知道文件路径)-》确认

以上步骤完成后,提交到后台,能获取到文件流
...全文
2750 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaochende02 2012-06-14
  • 打赏
  • 举报
回复
LZ你现在这个问题解决了吗?
xiaochende02 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
如题:

比如我知道文件的具体位置e:\aaa.zip

然后我用javascript 还模拟 type file上传文件获取文件流

问题:由于<input type="file"/>这个标签只有你打开文件夹选中文件后,

提交页面在后台能获取文件流,如果你是手动修改value值得话,不会起作用

所以需要用javascript模拟这个操作,

打开文件对话框-》选中文件……
[/Quote]

楼主我现在跟你遇到一样的问题,客户需求,就一个具体路径,然后要求上传,不能点浏览
KK3K2005 2012-04-16
  • 打赏
  • 举报
回复
websocket

另外 时间不要耗在没意义的东西上面
realliguangyu82 2012-04-16
  • 打赏
  • 举报
回复
各位高手

有没有办法啊,主要通过javascript 获取一个文件流 提交到后台也行

不要有插件,自己来实现 javascript 模拟 uploadfile 提交给后台

后台获取到流就行
realliguangyu82 2012-04-16
  • 打赏
  • 举报
回复
通过提交页面 模拟 选择文件,然后确认
<input type="file" id="local_file" name="local_file" size="50" style="display:none"/>

后台通过下面这个类获取文件流
MultipartFormData data = new MultipartFormData(request); MultipartFormData.Entity entity = data.getEntity("local_file");
entity.getInputStream()
由于是手动选择文件,所以获取的流为空值

要求是模拟file来上传文件获取选择的文件流
Acesidonu 2012-04-16
  • 打赏
  • 举报
回复
file是必须的吧
realliguangyu82 2012-04-16
  • 打赏
  • 举报
回复
谢谢各位

我的 意思是 按着我标题上说的实现,最好,别的方法暂时不考虑

谢谢各位了
realliguangyu82 2012-04-16
  • 打赏
  • 举报
回复
这是客户需求

总要有个调查结果才行,不是没有意义吧
wezza5ster 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

楼主可以试试这个控件。
此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,适合各种简单WEB项目。
另外一个特点是支持自动上传指定的本地文件。



单文件上传演示

单文件整合代码:
JScript code

服务器返回消息:<input id="txtFilePath" type="text" siz……
[/Quote]
一般来讲JS端不能直接给文件上传控件赋值,如果要直接赋值上传的话只能借助于第三方控件来实现。
我们公司去年做的一个政府的OA项目就是使用的第三方控件。
win32user 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

楼主可以试试这个控件。
此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,适合各种简单WEB项目。
另外一个特点是支持自动上传指定的本地文件。



单文件上传演示

单文件整合代码:
JScript code

服务器返回消息:<input id="txtFilePath" type="text" siz……
[/Quote]
这个是Xproer.HttpUploader吧。我们公司现在做的一个OA项目就是用的这个控件。使用起来比较简单。还不错。
wokofoxp 2012-04-15
  • 打赏
  • 举报
回复
楼主可以试试这个控件。
此控件是基于标准HTTP协议实现的文件上传功能。优势是扩展性非常好,整合简单,支持批量上传文件和上传文件夹功能,适合各种简单WEB项目。
另外一个特点是支持自动上传指定的本地文件。



单文件上传演示

单文件整合代码:

服务器返回消息:<input id="txtFilePath" type="text" size="50" />
<script type="text/javascript" language="javascript">
var uploaderMgr = new HttpUploaderSingleMgr();
uploaderMgr.Config["PostUrl"] = "http://localhost:8080/asp.net/upload.aspx";
uploaderMgr.Load();
uploaderMgr.CompleteHook = function(msg)
{
document.getElementById("txtFilePath").value = msg;
};

window.onload = function()
{
uploaderMgr.Init();
};
</script>

woshidzze0 2012-04-15
  • 打赏
  • 举报
回复
这个功能要借助于第三方控件来实现。JS不能实现。IE下可用ActiveX,FireFox下可用NPAPI。
prototyper 2012-04-15
  • 打赏
  • 举报
回复
我只是兼容非IE的实现JS触发input的click事件,虽然隐藏了file-input,它的click触发任然通过button-input的手动click所引起,不存在安全限制问题。
至于如何实现文件上传,可看看cloudgamer的研究SITE BY http://www.cnblogs.com/cloudgamer/archive/2008/10/20/1314766.html
还在加载中灬 2012-04-14
  • 打赏
  • 举报
回复
浏览器的开发商 认为 这是一种可能的 潜在的 危害 客户端的行为

因为 不允许 代码编写尝试这样的操作

这个考虑不考虑不在我们 在于浏览器的开发商

当然,在IE下,ActiveX有些可能下

我去翻阅下再来试下...
realliguangyu82 2012-04-14
  • 打赏
  • 举报
回复
模拟的话

不用考虑安全问题,这样的话可以模拟吗
还在加载中灬 2012-04-14
  • 打赏
  • 举报
回复
楼上的HTMLElement.prototype 应该在IE没效吧

选中文件? 由人来选择?还是也是模拟?

模拟的话,办不到的,这涉及到安全问题,浏览器不允许这么做的

其他的,模拟点击、直接提交,可以做到
prototyper 2012-04-14
  • 打赏
  • 举报
回复

<input type='file' id='loca' style='display:none'>
<input type='button' id='test' value='浏 览'>
<input type='button' id='uper' value='上 传'>
<script>
! +"\v1" || (HTMLElement.prototype.click = function(){
var eve = this.ownerDocument.createEvent("MouseEvents");
eve.initMouseEvent("click", true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false,

false, 0, null);
this.dispatchEvent(eve);
});

function $(o){return document.getElementById(o) || o}
$("test").onclick = function() {
$("loca").click();
}
$("uper").onclick = function() {
alert($("loca").value); // up data
}
</script>

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧