Ошибка загрузки файла - PullRequest
       6

Ошибка загрузки файла

1 голос
/ 21 декабря 2009

Это мой частичный код страницы управления загрузкой файлов. Это тот, который я использую. При загрузке файла, имя файла, опубликованный файл, все пусто. Я также пытался загрузить файл AJAX. Он показывает ошибку «Ссылка на объект не установлена ​​на экземпляр». Ват, проблема с моим кодированием?

<table>
    <tr>
        <td align="center">
            <span class="txt">
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                       <asp:FileUpload ID="fpResumenew" runat="server" Visible="false" Width="226px" />
                    </ContentTemplate>                     
                </asp:UpdatePanel>
            </span>
        </td>
    </tr>
    <tr>
        <td align="center">
            &nbsp;
        </td>
    </tr>
    <tr>
        <td style="vertical-align: top" align="center">
            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate>
                    <asp:Button ID="btnUpload" Font-Bold="true" 
                     DisabledText="Processing..." Visible="false"
                     Text="Upload" BackColor="Maroon" ForeColor="White" runat="server" OnClick="btnUpload_Click" />
                </ContentTemplate>
                <Triggers>
                        <asp:PostBackTrigger ControlID="btnUpload" />
                    </Triggers>
            </asp:UpdatePanel>
        </td>
    </tr>
</table>

защищенный void btnUpload_Click (отправитель объекта, EventArgs e)

{

    string strname = fpResumenew.FileName.ToString();

    if (fpResumenew.PostedFile.FileName.Trim().Length != 0)

    {


                byte[] binary = new byte[fpResumenew.PostedFile.ContentLength];
                binary = fpResumenew.FileBytes;
                string doc = fpResumenew.FileName;
                string contenttype = fpResumenew.PostedFile.ContentType;
                objservice1.UpdateResume(int.Parse(Session["LoginId"].ToString()), doc, binary, contenttype);
                Response.Redirect("delresume.aspx?Action=U");


    }
    else
    {
        lblmsg.Text = "File is not Found";
        lblmsg.Visible = true;

    }  


}

Ответы [ 3 ]

1 голос
/ 21 декабря 2009

Попробуйте добавить

<Triggers>
   <asp:PostBackTrigger ControlID="btnUpload" />
</Triggers>

объявление вашей первой панели обновлений, а не второй. Триггер должен находиться на панели, содержащей элемент управления FileUpload, а не на той, которая содержит кнопку. PostBackTrigger заставляет регулярно загружать файл загрузки, что необходимо для обеспечения безопасности браузера.

0 голосов
/ 21 декабря 2009

У меня ничего не работает .. Проблема в том, что я использую еще три кнопки на одной странице Другие кнопки, инициализирующие управление загрузкой файлов. Таким образом, при нажатии кнопки загрузки имя файла будет пустым. Итак, я использовал другую страницу для загрузки документа Word. Теперь это работает .. !!

0 голосов
/ 21 декабря 2009

Насколько я знаю, элемент управления FileUpload предотвращает загрузку файла без использования собственной кнопки «Обзор ...». Это предотвращает неправильное использование клиентской файловой системы путем автоматической загрузки с нее файлов.

Единственное решение - использовать слой над элементом управления, который отображает более приятный вид, но при этом сохраняется возможность использовать кнопку обзора или ввести путь вручную.

Вы можете найти расширенное решение о том, как стилизовать FileUpload здесь: Ссылка

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