问题描述
|
为什么文件输入元素根本不显示???请参见下面的代码和屏幕截图。我花了最后几个小时在我能找到的每个论坛上进行研究。我无法获得一致的答案。
<!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引用后。要实际指向有问题的文件,这是我最后看到的内容。
解决方法
uploadify.swf
的网址看起来不正确。我建议您在处理URL时始终使用URL帮助器:
jQuery(\"#dr405\").uploadify({
\'uploader\': \'@Url.Content(\"~/mvc3/uploadify/uploadify.swf\")\',\'cancelImg\': \'cancel.png\',...
});
,尽管我没有使用ashx,但我遇到了同样的问题。问题是我没有正确引用控制器的方法。我的控制器名为FileController.cs,因此我使用的是\'script \':\'File / Upload \',而不是\'script \':\'FileController / 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\";
}