如何解决如何以表格形式使用此文件上传?
| 嗨,我今天发现了这个文件上传,它有点像手套做即时通讯的形式,我唯一的问题是我如何将该文件上传到服务器?我知道要说成表格,但是我还是很困惑。 输入脚本,我这样使用它,http://plugins.jquery.com/project/custom-file 我的设置看起来像这样。 的HTML<input type=\"button\" class=\"upload\" value=\"Add A Showreel\" />
行动
foreach (string item in Request.Files)
{
count++;
HttpPostedFileBase file = Request.Files[item];
if (file != null)
{
}
}
我的事情是我不知道我是否应该将文件放置在某种隐藏字段中,或者将request.files放在什么地方?
解决方法
从控制器开始:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file != null && file.ContentLength > 0)
{
// If the user selected a file it will be stored
// in the special App_Data folder
var path = Server.MapPath(\"~/App_Data\");
var filename = Path.Combine(path,file.FileName);
file.SaveAs(filename);
}
return RedirectToAction(\"Index\");
}
}
然后一个视图:
<script src=\"<%= Url.Content(\"~/Scripts/jquery-custom-file-input.js\") %>\" type=\"text/javascript\"></script>
<% using (Html.BeginForm(\"index\",\"home\",FormMethod.Post,new { enctype = \"multipart/form-data\",id = \"myForm\" })) { %>
<input type=\"button\" class=\"upload\" value=\"Add a file\" />
<input type=\"submit\" value=\"Upload\" />
<% } %>
最后是一个JavaScript文件,将插件应用于按钮并脚本化标记:
$(function() {
$(\'.upload\').file().choose(function (e,input) {
// The controller action expects the file input to be named \"file\"
input.attr(\'name\',\'file\');
// let\'s hide the ugliness
input.hide();
// append the file input to the original form
// that we will be posting to the server
$(input).appendTo(\'#myForm\');
});
});
在ASP.NET MVC控制器操作中使用“ 5”之前必须先阅读博客:使用ASP.NET MVC上传文件(或多个文件)
, 这是图像上传的示例。我确定您可以为视频进行修改(我假设您的按钮上显示的是“ Showreel \”):
html与您的html相同,但这是C#代码:
foreach (string inputTagName in Request.Files)
{
HttpPostedFileBase file = Request.Files[inputTagName];
if (file.ContentLength > 0)
{
Byte[] fileByte = new Byte[file.ContentLength];
file.InputStream.Read(fileByte,file.ContentLength);
// Add code here to save fileByte to your database.
}
}
由于我使用的是图像,因此数据库中有一个图像条目,我将其设置为等于fileByte。为了获取文件,我使用以下代码:
public FileContentResult Image(int id)
{
Infographic infographic = GetInfographic(id);
return new FileContentResult(infographic.image,\"image/jpeg\");
}
在这种情况下,GetInfographic(int id)从数据库返回具有指定ID的唯一条目。然后,我让函数从数据库中的条目返回带有图像的FileContentResult,然后告诉它\\“ image / jpeg \”。这里有您可以使用的MIME内容类型列表。我使用\“ image / jpeg \”是因为我要发送图像,但是在您的情况下,我将使用\“ video / mpeg \”或类似的名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。