为什么文件输入元素根本不显示?看下面的代码和屏幕截图。我花了最后几个小时在我能找到的每个论坛上研究这个。我无法得到一致的答案。
<!DOCTYPE html>
<html>
<head><title>
Home Page
</title><link href="mvc3/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/mvc3/Scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script src="/mvc3/uploadify/jquery.uploadify.v2.1.4.js" type="text/javascript"></script>
<script src="/mvc3/uploadify/swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function () {
jQuery("#dr405").uploadify({
'uploader': 'uploadify.swf',
'cancelImg': 'cancel.png',
'buttonText': 'Browse Files',
'script': 'Uploader.ashx',
'folder': 'uploads',
'fileDesc': 'Image Files',
'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
'multi': true,
'auto': true
});
});
</script>
</head>
<body>
<div class="page">
<div id="header">
<div id="title">
<h1>My MVC Application</h1>
</div>
<div id="logindisplay">
Welcome <strong>dougrchamberlain</strong>!
[ <a href="/mvc3/Account/LogOff">Log Off</a> ]
</div>
<div id="menucontainer">
<ul id="menu">
<li><a href="/mvc3/">Home</a></li>
<li><a href="/mvc3/Home/About">About</a></li>
</ul>
</div>
</div>
<div id="main">
<h2>Welcome to ASP.NET MVC!</h2>
<p>Please upload your return</p>
<input type="file" name="dr405" id="dr405" />
<div id="footer">
</div>
</div>
</div>
</body>
</html>
更新
修复url引用后。要实际指向有问题的文件,这就是我在最后看到的内容。
答案 0 :(得分:1)
uploadify.swf
的网址看起来不对。我建议你在处理网址时总是使用网址助手:
jQuery("#dr405").uploadify({
'uploader': '@Url.Content("~/mvc3/uploadify/uploadify.swf")',
'cancelImg': 'cancel.png',
...
});
答案 1 :(得分:1)
我有同样的问题,虽然我没有使用ashx。问题是我没有正确引用我的控制器方法。我的控制器名为FileController.cs所以不是'script':'FileController / Upload',我使用'script':'File / Upload',现在没有IO错误 - 它正确调用控制器中的函数。
<script type="text/javascript">
$(document).ready(function () {
$("#file_upload").uploadify({
'uploader': '/uploadify/uploadify.swf',
'script': '/File/Upload',
'cancelImg': '/uploadify/cancel.png',
'multi': true,
'auto': true,
'buttonText': 'SELECT',
'onComplete': function (event, queueID, fileObj, response, data) {
$("#" + $(this).attr('id') + queueID + " .percentage").text(' - Completed');
return false;
}
});
});
public string Upload(HttpPostedFileBase fileData)
{
var fileName = this.Server.MapPath("~/uploads/" + System.IO.Path.GetFileName(fileData.FileName));
fileData.SaveAs(fileName);
return "ok";
}