2012-04-12 5 views
0

Я пытаюсь реализовать систему загрузки файлов, и я действительно не понимаю, что делать.Загрузка файла в asp.Net MVC3

Я ищу самый простой способ сделать это. После долгих исследований я нашел эти объяснения.

forums.asp.net/t/1678157.aspx/2/10

Итак, вот вещи, которые я сделал в представлении:

@Code 
    Dim fileName As String = "" 
    If (IsPost) Then 
     Dim uploadedFile = Request.Files(0) 
     fileName = Path.GetFileName(uploadedFile.FileName) 
     fileSavePath = Server.MapPath("~/Content/Uploads/" + fileName) 
     uploadedFile.SaveAs(fileSavePath) 
    End If 
End Code 

<form action="" method="post"> 
    @FileUpload.GetHtml(
     initialNumberOfFiles := 1, 
     allowMoreFilesToBeAdded := False, 
     includeFormTag := True, 
     uploadText := "Upload") 
</form> 

Проблема: GetHtml не является членом 'System.Web.UI.WebControls.FileUpload' Что я могу сделать, чтобы исправить это? Это хороший способ обработки загрузки файлов?

ответ

1

Одна из проблем, может быть, потому что вы забыли enctype="multipart/form-data" в вашей форме поста.

Возможно, ваш плагин загрузки установлен неправильно. Я предполагаю, что вы используете WebMatrix, поэтому this article может помочь

+0

Я использую VS2010 ... Это меняет что-то? Был установлен плагин для установки? Я этого не видел ... Это может быть проблемой, которую у меня был целый день –

+0

Я никогда не использовал ее, но, глядя на туркарилл, кажется, что что-то должно быть установлено (может быть, для сторонних разработчиков VS2010). – Iridio

+0

Я установил это: http://nuget.org/packages/microsoft-web-helpers, но это не помогло. Ошибка об «@ FileUpload.GetHtml» изменилась. Теперь он сообщает мне, что FileUpload не объявлен и может быть недоступен из-за уровня защиты. –

1

Скотт Hanselman имеет большую статью о реализации этого here

код находится в C#, но это должно вам начать

+0

Thx для этой статьи. Не имеет значения, находится ли он в C#, я привык к конвертерам сейчас ^^ –

+0

У меня возникла проблема с этой статьей. Невозможно преобразовать «System.Web.HttpPostedFileBase» в «System.Web.HttpPostedFile». У меня уже была эта проблема с ранее использовавшимся способом. –