嗨,我今天发现这个文件上载,它有点像一个表格我做的手套,我唯一的问题是我如何将此文件上传到服务器?我知道它说它把它放在一个形式但我仍然困惑。
输入脚本我这样使用它,http://plugins.jquery.com/project/custom-file 我的设置看起来像这样。
HTML
<input type="button" class="upload" value="Add A Showreel" />
ACTION
foreach (string item in Request.Files)
{
count++;
HttpPostedFileBase file = Request.Files[item];
if (file != null)
{
}
}
我的事情是我不知道我是否应该将文件放在某种隐藏的字段中,或者将request.files用于拾取它?
答案 0 :(得分:0)
从控制器开始:
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控制器操作中使用Request.Files
之前必须阅读博客:Uploading a File (Or Files) With ASP.NET MVC
答案 1 :(得分:-1)
以下是图片上传的示例。我相信你可以修改视频(我假设你的按钮说“Showreel”):
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, 0, 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”。您可以使用herehere列出的MIME内容类型。我使用“image / jpeg”,因为我正在发送图像,但在你的情况下,我会使用“video / mpeg”或类似的东西。