我正在使用plupload在上传图片之前对客户端进行缩放。如果用户没有安装flash,silverlight等引擎,我喜欢它优雅地回退到html4的功能。
我希望能够在用户点击页面上的某些元素时启动上传,并且我想处理事件(有时会停止打开文件对话框)。事实上,我想使用javascript弹出文件对话框。
好的,所以除非用户点击浏览按钮(或覆盖浏览按钮的覆盖),否则HTML4(或浏览器,除了chrome:P)不会让我这样做,所以当我得到回退到HTML4我会接受我不能这样做,但大多数用户将安装闪存或Silverlight,他们没有这个限制。所以我的问题是:
如何在plupload中触发文件打开对话框(请记住,我只需要flash和silverlight引擎来执行此操作)。
答案 0 :(得分:15)
以前的解决方案不适用于带有plupload 2.1.2的iPhone。
以下代码完成了这个技巧(需要jquery):
$("#id_of_the_second_button").click(function() {
$('div.moxie-shim input[type=file]').trigger('click');
});
答案 1 :(得分:6)
随着时间的推移,后备运行时间将变得无关紧要。这意味着我们迟早会全部使用HTML5运行时。如果您使用的是HTML5运行时,但不使用pluploadQueue()
,这也可以使用:
// Set up and initialise uploader
var uploader = new plupload.Uploader({
'runtimes' : 'html5',
'browse_button' : 'id_of_the_first_button'
// Other options
});
uploader.init();
// Hook in the second button
plupload.addEvent(document.getElementById('id_of_the_second_button'), 'click', function(e) {
var input = document.getElementById(uploader.id + '_html5');
if (input && !input.disabled) {
input.click();
} // if
e.preventDefault();
});
答案 2 :(得分:5)
如果有人正在搜索HTML5解决方案,请点击此处:
var up= $('#uploader').pluploadQueue();
if (up.features.triggerDialog) {
plupload.addEvent(document.getElementById('idOtherButton'), 'click', function(e) {
var input = document.getElementById(up.id + '_html5');
if (input && !input.disabled) { // for some reason FF (up to 8.0.1 so far) lets to click disabled input[type=file]
input.click();
}
e.preventDefault();
});
}
答案 3 :(得分:2)
确定。这似乎不可能这样做,所以除非有人为silverlight和flash组件实现事件句柄,否则我运气不好
答案 4 :(得分:1)
我看了你的问题。
我发现了一些可能有助于解决这个问题的文章。检查一下。这可能会有所帮助......!
02. https://stackoverflow.com/questions/2048026/open-file-dialog-box-in-javascript
答案 5 :(得分:0)
@PerHornshøj-Schierbeck 上传者已经初始化之后。渲染输入文件只需花费一些时间。因此,您需要像下面这样等待:
user: item1
alexa: you have ordered item1, your order will be served soon. (OrderFoodIntent)
javascript中的代码相似。为我工作的plupload 2.3.6
请帮助!