我有一个HTML表单(upload.htm),里面有一个HTML文件上传控件.
<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
<input id="uploader" name="uploadctrl" type="file"/>
</form>
Run Code Online (Sandbox Code Playgroud)
上面的页面中还有一个JavaScript方法,如:
function performUpload(){
document.getElementById('frmupload').submit();
}
Run Code Online (Sandbox Code Playgroud)
我从一个页面(uploadpage.htm)中调用它iframe:
<iframe id="docframe" src="upload.htm" style="display:none"></iframe>
Run Code Online (Sandbox Code Playgroud)
我尝试从uploadpage.htm页面执行下面的语句:
var i = document.getElementById('docframe');
i.contentWindow.performUpload();
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,说访问被拒绝,我的调试器停止在我显示的第一个JavaScript函数.这两个文件都位于Web项目中的相同位置.他们也有相同的域名.为什么我会收到此错误?
当然,早些时候,我可以发布页面:当我没有name为HTML上传控件设置属性时.但是在我在HTML标记中设置name属性后,我得到了这个奇怪的错误.为什么我第一次没有这个?
看看@ this post - > "访问被拒绝"当脚本试图访问IE8中的iframe时,但它没有帮助.
javascript file-upload cross-domain access-denied internet-explorer-8
我想<input type="file" />用CSS3 设计风格.
或者,我希望用户按下div(我会设计),这将打开浏览窗口.
这可能只使用HTML,CSS3和Javascript/jQuery吗?
是否可以设置文件类型的输入元素的样式而不必担心浏览器兼容性?在我的情况下,我需要实现一个背景图像和圆形边框(1px),如果可能的话,也应该定制按钮.
我有一个看起来像这样的网页
<html>
<head>
<title>File Upload Click Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<div onclick="$('input[type=file]').click()" >CLICK SIMULATOR</div>
<input type="file"></input>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的目标是让div在文件输入上引发点击事件,这似乎与我在IE和Chrome中所期望的完全一样,但在Firefox中不起作用(当你点击时没有打开文件浏览器div).
有没有办法让这个在FF工作?
我正在尝试设置我的Django 文件上传按钮的样式,但由于它是通过表单处理而未在模板中的HTML中明确编写的,因此我不能直接使用HTML和CSS来设置样式,就像我可以用于输入类型的其他按钮一样.
我试图在我的内容中添加我的CSS类forms.py,但它将我的CSS样式按钮放在vanilla默认的Django文件上传按钮上.
我的代码如下:
class FileUploadForm(forms.Form):
docFile = forms.FileField(
label = "Select a CSV file",
)
class Meta:
model = FileUpload
fields = ('docFile')
def __init__(self, *args, **kwargs):
super(FileUploadForm, self).__init__(*args, **kwargs)
self.fields['docFile'].widget.attrs.update({'class': 'my_class'})
Run Code Online (Sandbox Code Playgroud)
我也尝试widget在我的Meta班级中定义一个如下:
class Meta:
model = FileUpload
widgets = {
'docFile': forms.FileInput(attrs={'class': 'my_class'}),
}
Run Code Online (Sandbox Code Playgroud)
但这与我的第一次尝试具有相同的效果.
是否有不同的方法来实现这一点,或者是否存在一些您可以在我的代码中发现的逻辑错误?
html ×4
javascript ×3
css ×2
file-upload ×2
jquery ×2
cross-domain ×1
css3 ×1
django ×1
file ×1
file-io ×1
input ×1
python ×1