【发布时间】:2016-08-29 21:08:12
【问题描述】:
我有一个表单,该表单将单个文件图像上传到使用 binmode 读取和保存的 perl 脚本。 perl 脚本似乎没有获取文件流(文件大小最终为 0 字节)。我不确定我是否将 html 输入中的正确名称/引用传递/使用到 javascript formdata.append 中。我暂时避免使用 jquery 和 xhr 版本 2 解决方案。如果可能,我决心完成这项工作。
html 输入
<input id="newimg" type="file" onchange="changeimg(this.value,dbtable,dbid);">
javascript
function changeimg(filename,dbtable,dbid) {
// ignor "c:\fakepath\" in filename
var filename = document.getElementById('newimg').files[0].name;
var formdata = new FormData();
formdata.append("Content-Type", "multipart/form-data");
formdata.append("dbtable",dbtable);
formdata.append("dbid",dbid);
formdata.append("filename",filename);
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
var xhr = new XMLHttpRequest();
} else {
// code for IE6, IE5
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("POST","/uploader.pl",true);
xhr.send(formdata);
}
perl sn-p 我目前正在使用。在“非 javascript”页面表单提交下,同样的代码对我来说效果很好。
#
my $upload_filehandle = $cgi->upload("filename");
#
open (UPLOADFILE, ">$newfile");
binmode UPLOADFILE;
while ( <$upload_filehandle> ) {
print UPLOADFILE;
}
close UPLOADFILE;
#
【问题讨论】:
-
你在 Perl 端使用哪个框架/模块?你能添加你的 Perl 代码吗?
标签: javascript ajax perl