Загрузите файл на сервер автоматически в панели обновлений на сайте asp.net - PullRequest
3 голосов
/ 29 ноября 2011

У меня есть загрузка файла внутри панели обновлений и кнопка загрузки, которая загружает файл на сервер. Можно ли загрузить файл, не нажимая кнопку загрузки? Я хочу удалить кнопку загрузки и загрузить файл, как только файл будет выбран на компьютере пользователя . Или используйте 4-секундный таймер, затем вызовите upload_click, чтобы проверить, есть ли у файла загрузки файл или нет. Как я могу сделать это без кнопки внутри панели обновления?

<asp:UpdatePanel ID="UP_DDL" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
    <ContentTemplate> 
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Upload" OnClick="Upload_Click" runat="server" Text="Upload" />
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="Upload"/>
    </Triggers>
</asp:UpdatePanel>

protected void Upload_Click(object sender, EventArgs e)
{
    if (FileUpload1.HasFile)
    {
        //create the path to save the file to     
        string fileName = Path.Combine(Server.MapPath("~/Bulk Upload"), FileUpload1.FileName);
        //save the file to our local path  
        FileUpload1.SaveAs(fileName);
    }
}

Ответы [ 3 ]

1 голос
/ 29 ноября 2011

Я уверен, что вы можете использовать любое из событий в элементе HTML INPUT File, чтобы запустить полную запись, и это все, что вам нужно для автоматической загрузки файла.1004 * Google, по крайней мере, на стандартном интерфейсе, использует какой-то плагин Flash, чтобы выполнить то, что вы хотите.

Там могут быть некоторые другие плагины jQuery, которые предоставляют эту функциональность из коробки. Например, этот , кажется, делает это.

0 голосов
/ 29 ноября 2011

Вы можете скрыть кнопку «Загрузить» с помощью встроенного стиля display:none и добавить следующий код в метод Page_PreRender:

FileUpload1.Attributes["onchange"] = ClientScript.GetPostBackClientHyperlink(Upload, "");

Или рассмотрите возможность использования элемента управления AsyncFileUpload из AjaxControlToolkit

0 голосов
/ 29 ноября 2011

Вам нужно будет имитировать щелчок с помощью некоторого клиентского кода, например, используя submit из Javascript - и это не поддерживается по крайней мере одним известным браузером, я полагаю, IE.Вы можете использовать jQuery ajax-вызовы для статических веб-методов, которые загружают на лету, за кулисами, когда значение элемента управления загрузкой файла изменилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...