Доступ к входу вводит файл в стороне сервера в asp.net

Я использую <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 файл. Не способный видеть сохраненный файл. Что идет не так, как надо?

5
задан Ajay 4 January 2010 в 11:35
поделиться

4 ответа

Если вы дадите input-tag a id и добавите атрибут runat="server", то сможете легко получить к нему доступ.
. Сначала смените входную метку:
Затем добавьте следующее к методу Page_Load:

if (FileUpload.PostedFile != null) 
{
  FileUpload.PostedFile.SaveAs(@"some path here");
}

Это запишет ваш файл в выбранную вами папку. Вы можете получить доступ к объекту PostedFile, если вам нужно определить тип файла или имя оригинального файла.

.
0
ответ дан 14 December 2019 в 01:09
поделиться

Если вы не хотите использовать управление FileUpload в панели инструментов, дайте вашему входу ID, а затем используйте форму[id], чтобы получить доступ к полю ввода и пролейте его в HtmlInputFile.

пример здесь: http://www.codeproject.com/KB/aspnet/fileupload.aspx

0
ответ дан 14 December 2019 в 01:09
поделиться

Вам нужно добавить 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++;
}
7
ответ дан 14 December 2019 в 01:09
поделиться

Посмотрите на управление asp:FileUpload, предоставляемое ASP.NET.

0
ответ дан 14 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: