Я использую <input type="file" />
отметьте для загрузки файла на сервер. Как я получаю доступ к файлу в стороне сервера и храню его в сервере? (Файл является файлом изображения),
Клиентский код:
<form id="form1" action="PhotoStore.aspx" enctype="multipart/form-data">
<div>
<input type="file" id="file" onchange="preview(this)" />
<input type="submit" />
</div>
</form>
Photostore.aspx.cs имеет
protected void Page_Load(object sender, EventArgs e)
{
int index = 1;
foreach (HttpPostedFile postedFile in Request.Files)
{
int contentLength = postedFile.ContentLength;
string contentType = postedFile.ContentType;
string fileName = postedFile.FileName;
postedFile.SaveAs(@"c:\test\file" + index + ".tmp");
index++;
}
}
Я пытался загрузить jpg файл. Не способный видеть сохраненный файл. Что идет не так, как надо?
Если вы дадите input-tag a id и добавите атрибут runat="server", то сможете легко получить к нему доступ.
.
Сначала смените входную метку:
Затем добавьте следующее к методу Page_Load:
if (FileUpload.PostedFile != null)
{
FileUpload.PostedFile.SaveAs(@"some path here");
}
Это запишет ваш файл в выбранную вами папку. Вы можете получить доступ к объекту PostedFile, если вам нужно определить тип файла или имя оригинального файла.
.Если вы не хотите использовать управление FileUpload в панели инструментов, дайте вашему входу ID, а затем используйте форму[id], чтобы получить доступ к полю ввода и пролейте его в HtmlInputFile.
пример здесь: http://www.codeproject.com/KB/aspnet/fileupload.aspx
Вам нужно добавить id
и runat="server"
атрибуты типа этого:
<input type="file" id="MyFileUpload" runat="server" />
Затем на стороне сервера вы получите доступ к свойству PostedFile
, которое даст вам ContentLength
, ContentType
, FileName
, InputStream
свойства и SaveAs
метод и т.д.:
int contentLength = MyFileUpload.PostedFile.ContentLength;
string contentType = MyFileUpload.PostedFile.ContentType;
string fileName = MyFileUpload.PostedFile.FileName;
MyFileUpload.PostedFile.Save(@"c:\test.tmp");
В качестве альтернативы, вы можете использовать Request. Files
, который дает вам коллекцию всех загруженных файлов:
int index = 1;
foreach (HttpPostedFile postedFile in Request.Files)
{
int contentLength = postedFile.ContentLength;
string contentType = postedFile.ContentType;
string fileName = postedFile.FileName;
postedFile.Save(@"c:\test" + index + ".tmp");
index++;
}
Посмотрите на управление asp:FileUpload, предоставляемое ASP.NET.