百度webupload上传 1

百度webupload网址:http://fex.baidu.com/webuploader/

引入js和css

<script src="../../Content/webuploader.js"></script>
<link href="../../Content/webuploader.css" rel="stylesheet" />

页面html代码

<div id="uploader" class="wu-example">
<!--用来存放文件信息-->
<div id="thelist" class="uploader-list"></div>
<div class="btns">
<div id="picker">选择文件</div>
<button id="ctlBtn" class="btn btn-default">开始上传</button>
</div>
</div>

初始化webupload.js

<script type="text/javascript">
// 文件上传
jQuery(function () {
var $ = jQuery,
$list = $(‘#thelist‘),
$btn = $(‘#ctlBtn‘),
state = ‘pending‘,
uploader;

uploader = WebUploader.create({

// 不压缩image
resize: false,

// swf文件路径
swf: ‘/content/Uploader.swf‘,

// 文件接收服务端。
server: ‘/Webupload/Process‘,   (这是在后台写的接收前台传送的文件方法)

// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: ‘#picker‘,


});

// 当有文件添加进来的时候
uploader.on(‘fileQueued‘, function (file) {
$list.append(‘<div id="‘ + file.id + ‘" class="item">‘ +
‘<h4 class="info">‘ + file.name + ‘</h4>‘ +
‘<p class="state">等待上传...</p>‘ +
‘</div>‘);
});

// 文件上传过程中创建进度条实时显示。
uploader.on(‘uploadProgress‘, function (file, percentage) {
var $li = $(‘#‘ + file.id),
$percent = $li.find(‘.progress .progress-bar‘);

// 避免重复创建
if (!$percent.length) {
$percent = $(‘<div class="progress progress-striped active">‘ +
‘<div class="progress-bar" role="progressbar" style="width: 0%">‘ +
‘</div>‘ +
‘</div>‘).appendTo($li).find(‘.progress-bar‘);
}

$li.find(‘p.state‘).text(‘上传中‘);

$percent.css(‘width‘, percentage * 100 + ‘%‘);
});

uploader.on(‘uploadSuccess‘, function (file) {
$(‘#‘ + file.id).find(‘p.state‘).text(‘已上传‘);
});

uploader.on(‘uploadError‘, function (file) {
$(‘#‘ + file.id).find(‘p.state‘).text(‘上传出错‘);
});

uploader.on(‘uploadComplete‘, function (file) {
$(‘#‘ + file.id).find(‘.progress‘).fadeOut();
});

uploader.on(‘all‘, function (type) {
if (type === ‘startUpload‘) {
state = ‘uploading‘;
} else if (type === ‘stopUpload‘) {
state = ‘paused‘;
} else if (type === ‘uploadFinished‘) {
state = ‘done‘;
}

if (state === ‘uploading‘) {
$btn.text(‘暂停上传‘);
} else {
$btn.text(‘开始上传‘);
}
});

$btn.on(‘click‘, function () {
if (state === ‘uploading‘) {
uploader.stop();
} else {
uploader.upload();
}
});
});

</script>

后台接收上传的文件的代码(接收接口)

public class WebuploadController : Controller
{
//
// GET: /Webupload/

public WebuploadController()
{
var applicationPath = VirtualPathUtility.ToAbsolute("~") == "/" ? "" : VirtualPathUtility.ToAbsolute("~");
urlPath = "/PHP";//存储的地址
}

static string urlPath = string.Empty;
public ActionResult Process(string id, string name, string type, string lastModifiedDate, int size, HttpPostedFileBase file)
{
string filePathName = string.Empty;

string localPath = Path.Combine(HttpRuntime.AppDomainAppPath, "PHP");
if (Request.Files.Count == 0)
{
return Json(new { jsonrpc = 2.0, error = new { code = 102, message = "保存失败" }, id = "id" });
}

string ex = Path.GetExtension(file.FileName);
filePathName = Guid.NewGuid().ToString("N") + ex;
if (!System.IO.Directory.Exists(localPath))
{
System.IO.Directory.CreateDirectory(localPath);
}
file.SaveAs(Path.Combine(localPath, filePathName));

return Json(new
{
jsonrpc = "2.0",
id = "id",
filePath = urlPath + "/" + filePathName
});
}

}

对于上传大的文件需要在配置文件中改iis配置

<system.web>

<httpRuntime maxRequestLength="999999999" />//用户上传文件最大体积
<compilation debug="true" targetFramework="4.0" />

</system.web>

 

<system.webServer>

<security>

<requestFiltering>
<requestLimits maxAllowedContentLength="3000000000" />
</requestFiltering>
</security>
</system.webServer>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。