Member 13998042 Ответов: 1

Fileupload всегда равен нулю


я пытаюсь загрузить файл в sql server, но он всегда показывает, что fileupload равен нулю
пожалуйста, помогите..
<%@ Page Language="C#" MasterPageFile="~/Header/DMSMain.Master" AutoEventWireup="true" CodeBehind="Budgetlistdetails.aspx.cs" Inherits="DMS.Masters.Budgetlistdetails" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
...
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Label ID="lblselfile" runat="server" CssClass="label_text">Select File</asp:Label>
        <asp:FileUpload ID="FileUpload1"  runat="server" Height="19px" Width="132px"  />
        <asp:Button ID="btnupload" runat="server" Text="Upload" OnClick="btnupload_Click"  />

        <Triggers>
            <asp:PostBackTrigger ControlID="btnupload" />
            <asp:AsyncPostBackTrigger ControlID="btnupload"/>
        </Triggers>
        
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Please select a file" ValidationGroup="a" ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
    </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>
protected void btnupload_Click(object sender, EventArgs e)
{
    HttpPostedFile postedFile = FileUpload1.PostedFile;
    string filename = Path.GetFileName(postedFile.FileName);
    int filesize = postedFile.ContentLength;
    
    Stream stream = postedFile.InputStream;
    BinaryReader br = new BinaryReader(stream);
    byte[] bytes = br.ReadBytes((int)stream.Length);
    using (MasterManagement mMgmt = new MasterManagement(General.ConnString()))
    {
        mMgmt.budgetupload(txtbudid.Text.Trim(), bytes, filename, filesize, Session["UId"].ToString());
        LblError.Visible = true;
        LblError.Text = "Budget details added successfuly and send for authorization";
    }
    HyperLink1.NavigateUrl = "~/Imageviewer.aspx?ID=" + txtbudid.ToString();
}


Что я уже пробовал:

я попытался добавить триггер, но все та же проблема

ZurdoDev

Только разместите соответствующий код. Пожалуйста, очистите код, который вы опубликовали, только до соответствующего кода, а также опубликуйте код C#, который у вас есть.

Member 13998042

охраняемых недействительными btnupload_Click(объект отправителя, EventArgs в электронной)
{
HttpPostedFile postedFile = FileUpload1.PostedFile;
string filename = Path.GetFileName(postedFile.имя файла);
int filesize = postedFile.ContentLength;

Stream stream = postedFile.Входной поток;
BinaryReader br = новый BinaryReader(поток);
byte[] bytes = br.ReadBytes((int)stream.Длина);
using (MasterManagement mMgmt = new MasterManagement(General.ConnString()))
{
mMgmt.budgetupload(txtbudid.Текст.Отделка(), байт, имя файла, размер файла, сессии["идентификатор"].Метод toString());
LblError.Видимое = истинное;
LblError.Text = "сведения о бюджете успешно добавлены и отправлены на авторизацию";
}
HyperLink1.NavigateUrl = "~/Imageviewer.aspx?ID=" + txtbudid.Метод toString();
}
это код c#

DerekT-P

Так что же такое "всегда ноль"? FileUpload1? "байты"? Ваш первоначальный вопрос гласит: "загрузите файл в sql server, но он всегда показывает, что fileupload равен нулю", но вы все еще не показали нам никакой ссылки на Sql Server или как вы ожидаете, что содержимое файла попадет туда. В вашем вопросе, что вы подразумеваете под "этим"? Столбец в таблице d/b где-то??

Member 13998042

Загрузка файла была нулевой функцией(fileupload.hasfile), но теперь она была решена спасибо за помощь

1 Ответов

Рейтинг:
6

Richard Deeming

Вы установили btnUpload чтобы быть как PostBackTrigger и AsyncPostBackTrigger Это должен быть только один человек. PostBackTrigger, так как загрузка файлов не работает через AJAX в UpdatePanel.

Вы также должны убедиться, что у вас есть правильный enctype установите на свой <asp:form>:

public void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        Page.Form.Enctype = "multipart/form-data";
    }
}