在我们的项目中,我们使用 plupload 上传单个 excel 文件。这适用于除 IE9 之外的所有浏览器。单击上传链接会显示文件对话框,但尝试打开 Excel 时没有任何反应。以下是供引用的代码,我们将不胜感激解决此问题的任何帮助。提前致谢!
function initUploader(btnId, fileType, onSuccess) {
if (typeof fileType == "undefined") fileType = "image";
var arrFilters = new Array();
var url = 'user/attachmentUpload';
switch (fileType) {
case "image":
arrFilters = [{title : "Image files", extensions : "jpg,jpeg,gif,png"}];
url = 'assets/imgupload';
break;
case "xls":
arrFilters = [{title : "Spreadsheet files", extensions : "xls,xlsx"}];
url = 'user/attachmentUpload';
break;
case "media":
arrFilters = [{
title : "Media files",
extensions : "mpeg4,mob,3gpp,avi,wmv,mp3,m4a,ogg,wav"
}];
break;
case "document":
arrFilters = [{
title : "Text files",
extensions : "doc,docx"
},{
title : "PDF files",
extensions : "pdf"
}];
break;
default:
arrFilters = [
{
title : "Image files",
extensions : "jpg,jpeg,gif,png"
},
{
title : "Zip files",
extensions : "zip"
},
{
title : "Media files",
extensions : "mpeg4,mob,3gpp,avi,wmv,mp3,m4a,ogg,wav"
},
{
title : "Spreadsheet files",
extensions : "xls,xlsx"
},
{
title : "Text files",
extensions : "doc,docx"
},
{
title : "PDF files",
extensions : "pdf"
}
];
break;
}
var uploader = new plupload.Uploader({
runtimes : 'gears,html5,html4,flash,silverlight,browserplus',
browse_button : btnId,
//container : 'container',
max_file_size : '10mb',
url : url,
flash_swf_url : 'assets/js/vendor/plupload/plupload.flash.swf',
silverlight_xap_url : 'assets/js/vendor/plupload/plupload.silverlight.xap',
multiple_queues : false,
filters : arrFilters,
resize : {width : 320, height : 240, quality : 90}
});
$('#'+btnId).change(function(){
uploader.start();
});
uploader.refresh();
uploader.init();
uploader.bind('FilesAdded', function(up, files) {
up.refresh(); // Reposition Flash/Silverlight
Utility.showProcessingBar();
uploader.start();
});
uploader.bind('Error', function(up, err) {
alert("Error: " + err.code + ", Message: " + err.message + (err.file ? ", File: " + err.file.name : ""));
up.refresh(); // Reposition Flash/Silverlight
});
uploader.bind('FileUploaded', function(up, file, response) {
var obj = eval('(' + response.response + ')');
//alert('Files uploaded');
if (typeof onSuccess == "function")
onSuccess(obj.fileName);
});
}
最佳答案
致所有和我有同样问题的人:
我有以下 HTML 代码:
<div class="container" style="display:none">
<div>
Logo:
</div>
<div style="clear"></div>
<div id="uploader">
<div id="runtime" class="right">
No runtime was found !
</div>
<div>
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
</div>
</div>
类 container 被创建为对话框:
$(function(){
$(".container").dialog({modal:true, width:400});
});
我们知道 div 最初是隐藏的,因为 display: none (当然,您可以将 autoOpen:false 设置为对话框对象中的新选项),我们可以删除样式。
在 IE8 中(可能在更早和更高版本中)如果 div 被隐藏, uploader 将无法正确实例化。 (返回上述错误)
在 Chrome 和 Firefox 中(我没有在 Opera 中测试这个问题),它工作正常。
因此,我的建议是避免隐藏 block (即使您希望创建模态对话框)。
我从 div 中删除了 display:none 样式和 dialog 对象,现在它在 IE8 中工作得很好。
为什么?我不知道为什么在IE中,在页面启动时没有创建对象的实例,而在Firefox和Chrome中,该实例是正常创建的。
关于javascript - plupload在IE 9中好像不能上传文件,在其他浏览器中也可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21014586/
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的