我之前看到,出于安全原因,无法使用javascript设置表单文件输入字段值.
我只想将一个FILE输入复制到另一个表单并发布,我搜索了一个工作,找不到任何东西,是否可能?
更新:我的代码:
function prepareUpload( filevalue ){
document.getElementById('logo').value =filevalue;
var mform = document.getElementById('sleeker');
ajaxUpload( mform,'<?php echo base_url(); ?>'); // a methods to upload...
}
<input class="input-file-upload" type="file" size="20" name="logodummy" id="logodummy" onchange="prepareUpload( this.value );" />
<form action="" method="post" name="sleeker" id="sleeker" enctype="multipart/form-data" onbeforesubmit="return false;">
<p><input type="hidden" name="logo" id="logo" /></p>
</form>
Run Code Online (Sandbox Code Playgroud)
其他任何文件输入工作正常,我可以收到$ _POST,但$ _FILES没有值.而且这个代码也很好.我觉得这个系数够了吗?
是的,您可以将<input type="file">HTML表单放在外面,然后使用该onChange事件填充已<input type="hidden">发布的表单:
<input type="file"
onchange="document.getElementById('hidden_file').value = this.value;" />
<form method="POST">
<input type="hidden" id="hidden_file" value="" />
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
但是,在现代浏览器中,您只能访问文件名,而不能访问完整路径.您可能需要查看以下Stack Overflow帖子以获取有关此主题的更多信息:
更新:
最初的问题让我觉得你只需要将"文件名"复制到另一个HTML表单,而不是整个<input type="file">表示.
继续更新,我假设你的意思是这样的:
<input type="file"
onchange="document.getElementById('hidden_file').value = this.value;" />
<form method="POST">
<input type="file" id="hidden_file" value="" />
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
不幸的是,上述方法无效."Security error code: 1000"如果您尝试上面的示例,Firefox将返回 .
至于一些解决方法,您可能需要查看David Dorward的建议:
| 归档时间: |
|
| 查看次数: |
26440 次 |
| 最近记录: |