我已经建立了一个非常简单的原型来测试 YUI 上传器。(flash 版本)该文件正在发送到发送简单 Ajax 响应的服务器。但是,唯一被触发的事件是fileselect
and uploadstart
。uploadcomplete
, uploaderror
, 并且uploadprogress
永远不会被触发。这是 YUI 3.5.1。
HTML 和 JS
<!DOCTYPE html>
<html>
<head>
<title>Uploader Bizness</title>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="http://yui.yahooapis.com/3.5.1/build/yui/yui-min.js"></script>
</head>
<body>
<div id="upload"></div>
<div id="progress"></div>
<script>
'use strict';
YUI().use('uploader', 'uploader-flash', function (Y) {
Y.Uploader = Y.UploaderFlash;
var uploader = new Y.Uploader({
width: '150px',
height: '40px',
swfURL: '/flashuploader.swf'
}).render('#upload');
uploader.on('fileselect', function (G) {
var firstFile = G.fileList[0];
uploader.upload(firstFile, 'http://localhost:28107/home/upload', { postvar1: 'foo', postvar2: 'bar' });
});
uploader.on('uploadstart', function () {
console.log('Upload started');
});
uploader.on('uploadcomplete', function (e) {
console.log('Upload completed successfully', e);
});
uploader.on('uploaderror', function (e) {
console.log('Upload error', e);
});
uploader.on('uploadprogress', function (file, bytesloaded, bytesTotal, percentLoaded, e) {
$('#progess').html(percentLoaded);
});
});
</script>
</body>
</html>
服务器端代码
public JsonResult Upload()
{
var result = new JsonResult();
result.Data = new {message = "great success"};
return result;
}
我在这里做错了什么?