我本是征服了大海的男人,却摔死在 javascript 这片沙滩上

2015-07-09 18:46:54 +08:00
 liuxu
又在这美丽的夕阳下加班。
昨天室友面试遇到一个刁钻的JAVA题目,回来我用C重写,用gdb反汇编后用AT&T汇编代码和他讲解了程序的原理,为什么答案会是那样,讲完后我都觉得这个世界上没有我解决不了的问题。可是今天用javascript发送个post请求到一个php接口上,我倒下了,情况是这样的。。。
我有一个' <input type="file" id="myfile" /> '标签,点击上传文件后,需要post提交给我的a.php这个接口文件。我不能直接提交,必须用js动态生成一个form表单,然后把这个myfile的文件读到我动态生成的表单,然后提交到a.php。,第一种方法,我用 ' createElement("form") '这种方式,现在问题来了,新生成的' <input type="file" /> '里必须有一个' name="hhh" '属性,用这种方式我可以用' document.getElementById("myfile").files[0] '得到文件对象,可是却不知道怎么把得到的文件对象设置给动态生成的 ' <input type="file" /> '标签里。
第二种方法用ajax,用' var myfrm=new FormData() '生成表单,这种方式添加file标签,' myfrm.append("file",document.getElementById("myfile").files[0]); ',可是不知道怎么给它设置name属性,,更让我尴尬的是,我使用的ubuntu 14.04,浏览器是chrome 43.0.2357.130 (64-bit),文件在/home/liuxu/download/ 下,用alert输出input的value值却是“C:\fakepath\GDB调试入门教程.pdf”。。。
在这北京的天空之下,我都觉得我的夜晚连星星都不再亮了, 苦海无涯,回头无岸,,盼望着没有哪位js大神指点我一二,给我力量,让我披荆斩棘,不再被任何bug阻拦。
谢谢。
3405 次点击
所在节点    程序员
26 条回复
yxzblue
2015-07-09 18:52:54 +08:00
gdb反汇编后用AT&T汇编代码是什么意思?
tabris17
2015-07-09 18:55:40 +08:00
@yxzblue AT&T ASM是一种汇编的格式,和INTEL ASM有所区别
zhengnanlee
2015-07-09 18:56:57 +08:00
同问反汇编。。这是为了炫耀?
DualWield
2015-07-09 19:03:35 +08:00
jquery.form.js ,具体实现请看源码
RIcter
2015-07-09 19:04:42 +08:00
我感觉还是 intel 格式的汇编好看(
liuzhen
2015-07-09 19:05:00 +08:00
第一步为什么要动态生成form呢?直接把form写页面上, input file写在form里面不行吗
jsq2627
2015-07-09 19:06:02 +08:00
C:\fakepath 这个是浏览器为了安全,不允许JS读到文件的实际路径,所以就提供了一个虚拟路径来替代。
epicq
2015-07-09 19:07:43 +08:00
刚好看CSAPP看到了反汇编
sumhat
2015-07-09 19:08:32 +08:00
Javascript: 怪我喽?
liuxu
2015-07-09 19:17:48 +08:00
@zhengnanlee 是为了装(),每次装完我都有深深的快感
liuxu
2015-07-09 19:18:50 +08:00
@liuzhen 问题就在这里,工作情况是不能动已有的页面代码,只能写js
liuxu
2015-07-09 19:19:07 +08:00
@jsq2627 原来是这样,感谢
echo1937
2015-07-09 19:19:33 +08:00
@liuxu 装()会上瘾,进而导致快感获取障碍综合症。
nocwat
2015-07-09 19:23:09 +08:00
myfrm.append("file",document.getElementById("myfile").files[0]);
第一个参数 "file" 不就是 name 么?

value 不对是正常的,现在的浏览器都这么干了
18000rpm
2015-07-09 19:36:15 +08:00
从海里来的乡巴佬,欢迎来到陆地。
<删除线>装完逼就跑!去学汇编了哈哈</删除线>
liuxu
2015-07-09 19:44:06 +08:00
@echo1937 有肾宝,我好,大家都好。
zhengnanlee
2015-07-09 19:45:42 +08:00
@liuxu 果然。。
liuxu
2015-07-09 19:47:23 +08:00
@nocwat 我试过,没有用。。
liuxu
2015-07-09 19:48:40 +08:00
@18000rpm 装完逼还想跑,我的大刀早已饥渴难耐
god
2015-07-09 20:02:30 +08:00
欢迎进入新世界。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/204545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX