您好,
我从2008年开始由Steve Sanders实现了这个plugin。在我的解决方案中,我有3个按钮可以上传3个,这很好用。但这不是一个完美的契合,问题是如果thera对我来说是更好的解决方案吗?
我需要的是:
请求建议
答案 0 :(得分:2)
如何使用Uploadify?我以前用过它,效果很好。但请注意,它还需要一个Flash前端才能工作......
看看this StackOverflow问题 - 在那里你可以找到有关如何在ASP.NET MVC中使用它的更多信息。
答案 1 :(得分:2)
引人注目的是Steve Sanders的插件使用了swfUpload,它可以支持你需要的一切。然而,他的插件似乎没有公开swfUpload的所有功能,例如取消上传。
我在我的网站上使用swfUpload来支持多个文件,取消上传,验证而不取消其他上传等等。
这是一个demo of swfUpload,您可以取消上传
答案 2 :(得分:1)
另一个选项是 SlickUpload 。
这不是免费的,但在我看来绝对值得。我最近在一个MVC项目中使用它,并对它非常满意。我用过的最好的上传插件+它带有各种验证助手。
它也是完全可定制的。
Download the trial并亲自看看:)
答案 3 :(得分:1)
使用纯ASP.NET是不可能的。
你需要采用JQuery uploadify。 这是你能找到的最好的,相信我,我试了整整一天。
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="MassUpload.aspx.vb" Inherits="Raumplaner_New.MassUpload" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Mass Upload</title>
<link href="../upload/css/uploadify.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="../scripts/swfobject.js"></script>
<script type="text/javascript" src="../scripts/jquery.uploadify.v2.1.0.min.js"></script>
<script type = "text/javascript">
$(document).ready( function()
{
$("#<%=FileUpload1.ClientID%>").uploadify({
'uploader' : '../upload/scripts/uploadify.swf',
'script' : '../cgi-bin/Upload.ashx',
'cancelImg' : '../upload/images/cancel.png',
'folder' : '../upload/temp',
'buttonImg' : '../upload/images/uploadbutton.png',
'width' : '97',
'height' : '22',
'wmode' : 'transparent',
'displayData' : 'speed',
'multi' : true,
'auto' : true,
'simUploadLimit' : 20,
'fileDesc' : 'DWG und SWF - Dateien',
'fileExt' : '*.dwg;*.swf',
'onSelect' : function(event, queueID, fileObj){ EnableObject('FileUpload1');},
'onCancel' : function(event, queueID, fileObj, data){DisableObject('FileUpload1');},
'onComplete' : function(event,queueID,fileObj,response,data){alert(fileObj.name);}
});
$("#startUploadLink").click( function()
{
$('#<%=FileUpload1.ClientID%>').uploadifyUpload();
return false;
});
$("#clearQueueLink").click( function()
{
$("#<%=FileUpload1.ClientID%>").uploadifyClearQueue();
return false;
});
});
</script>
</head>
<body style='background:black;'>
<div id='main'>
<form id="form1" runat="server">
<br/>
<div class="demo">
<asp:FileUpload ID="FileUpload1" runat="server" />
<br />
<a href="#" id="startUploadLink">Start Upload</a> |
<a href="#" id="clearQueueLink">Clear</a>
</div>
</form>
</div>
</body>
</html>
这是upload.ashx &lt;%@ WebHandler Language =“VB”Class =“Upload”%&gt;
Imports System
Imports System.Web
Public Class Upload : Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim postedFile As HttpPostedFile = context.Request.Files("Filedata")
Dim savepath As String = ""
Dim tempPath As String = ""
tempPath = context.Request("folder")
'If you prefer to use web.config for folder path, uncomment below:
'tempPath = System.Configuration.ConfigurationManager.AppSettings("FolderPath")
savepath = context.Server.MapPath(tempPath)
Dim filename As String = postedFile.FileName
If Not System.IO.Directory.Exists(savepath) Then
System.IO.Directory.CreateDirectory(savepath)
End If
postedFile.SaveAs((savepath & "\") + filename)
context.Response.Write((tempPath & "/") + filename)
context.Response.StatusCode = 200
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class