powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ..опять загрука файла ((
19 сообщений из 19, страница 1 из 1
..опять загрука файла ((
    #33825874
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На стороне хтмл — датагрид, в его колонке — поле для загрузки файла

    <asp:DataGrid id=DataGrid_catalogGoods runat="server" DataSource="<%# DataSet_admCatalogGoods1 %>" Width="232px" DataKeyField="id" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundColumn Visible="False" DataField="id" HeaderText="id"></asp:BoundColumn>
            <asp:TemplateColumn>
                <ItemTemplate>
                    <img src='/images/<%# Container.DataItem("id")%>.jpg'>
                </ItemTemplate>
                <EditItemTemplate>                
                    <input type="file" runat="server" ID="FileInput" NAME="FileInput"> 
                </EditItemTemplate>                                
            </asp:TemplateColumn>
            <asp:BoundColumn DataField="cost" HeaderText="cost"></asp:BoundColumn>
            <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
            <asp:ButtonColumn Text="Delete" CommandName="Delete"></asp:ButtonColumn>
        </Columns>
    </asp:DataGrid>
В коде:


    Private FileInput As New HtmlInputFile
    Sub
...
       If FileInput.PostedFile Is Nothing Then
            Message.Text = "Файл не выбран!"
....
Файл почему-то никак не подгружается (((
---
версия асп.нет 1.1
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825886
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во-первых, никакого "runat=server"

во-вторых, нужно использовать "asp:FileUpload"

в-третьих, проверять надо как
<pre>
if (this.FileUpload1.PostedFile.ContentLength == 0)
{
Label1.Text = "file not selected";
}

</pre>

-
| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825893
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, BlackTigerAP, Вы писали:

BTA>во-первых, никакого "runat=server"
убрал
BTA>во-вторых, нужно использовать "asp:FileUpload"
пишет, что элемент не поддерживается. Это точно синтаксис для ASP.NET 1.1?
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825900
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну нет такого в "1.1" значит.

Так возьми с панельки то, что там есть. Только не из "HTML Controls".

-
| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825902
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про

<asp:HtmlInputFile

тоже пишется, что он не поддерживается активной схемой :crash:
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825903
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, BlackTigerAP, Вы писали:

BTA>Ну нет такого в "1.1" значит.

BTA>Так возьми с панельки то, что там есть. Только не из "HTML Controls".

У меня есть вкладки "html" (где есть <input type="file"), и "webforms", где для файлов нет вообще ничего.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825913
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще всё должно и так работать.

Ты в каком месте файл прочитать пытаешься?

-
| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825915
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<%@ Page Language="c#" Debug="true" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title></title>
</head>

<body>
<form runat="server"><input type="file" id="FileUpload1" name="FileUpload1" runat="Server">
<ASP:Button id="button1" runat="server" text="Button"></ASP:Button>
    <hr width="100%" size="1">
<ASP:Label id="label1" runat="server"></ASP:Label>

</form>
</body>
</html>

private void button1_Click(object sender, System.EventArgs e)
        {
            if (this.FileUpload1.PostedFile.ContentLength == 0)
            {
                label1.Text = "file not selected";
            }
            else
            {
                TextReader text = new StreamReader(FileUpload1.PostedFile.InputStream);
                label1.Text = "<pre>" + text.ReadToEnd() + "</pre>";
            }
        }



Моё всё работает без проблем.

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825917
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я к файлу обращаюсь во время исполнения собития Update
Private Sub DataGrid_catalogGoods_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid_catalogGoods.UpdateCommand

сейчас попробовал обратиться к нему, по номеру колонки:

содержимое .ascx файла:

<%@ Control Language="vb" AutoEventWireup="false" Codebehind="catalog_goods.ascx.vb" Inherits="ceo_test.catalog_goods" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<form name="goods_form" method="post" enctype="multipart/form-date">
    <asp:DataGrid id=DataGrid_catalogGoods runat="server" DataSource="<%# DataSet_admCatalogGoods1 %>" Width="232px" DataKeyField="id" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundColumn Visible="False" DataField="id" HeaderText="id"></asp:BoundColumn>
            <asp:TemplateColumn>
                <ItemTemplate>
                    <img src='/images/<%# Container.DataItem("id")%>.jpg'>
                </ItemTemplate>
                <EditItemTemplate>
                    <input type="file" runat="server" id="FileUpload1" name="FileUpload1">
                </EditItemTemplate>
            </asp:TemplateColumn>
            <asp:BoundColumn DataField="cost" HeaderText="cost"></asp:BoundColumn>
            <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
            <asp:ButtonColumn Text="Delete" CommandName="Delete"></asp:ButtonColumn>
        </Columns>
    </asp:DataGrid>
    <P>
        <asp:linkbutton id="Linkbutton_addGoods" onclick="AddNew_Click" runat="server" Text="Add new item"
            Font-Size="smaller">Добавить товар</asp:linkbutton></P>
    <P>
        <asp:label id="Message" runat="server"></asp:label></P>
</form>

code behind:

FileUpload1 = CType(e.Item.Cells(1).Controls(0), HtmlInputFile)
If (FileUpload1.PostedFile.ContentLength = 0) Then

Выдалась ошибка:

Line 251: FileUpload1 = CType(e.Item.Cells(1).Controls(0), HtmlInputFile)

Specified cast is not valid.
Exception Details: System.InvalidCastException: Specified cast is not valid.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825921
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"CType(e.Item.Cells(1).Controls(0), HtmlInputFile)"

Лучше ищи контрол по имени. Он может быть и не "0", скорее всего он 1-й.

-
| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825923
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, BlackTigerAP, Вы писали:

BTA>"CType(e.Item.Cells(1).Controls(0), HtmlInputFile)"

BTA>Лучше ищи контрол по имени. Он может быть и не "0", скорее всего он 1-й.

Я попробовал и как к первому обратиться и — по имени.
Line 255: If (CType(e.Item.Cells(1).FindControl("FileUpload1"), HtmlInputFile).PostedFile.ContentLength = 0) Then

Выдаёт ошибку:

Object reference not set to an instance of an object.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825947
conderol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лови...
<body MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 144px; POSITION: absolute; TOP: 192px"
                runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:TemplateColumn>
                        <EditItemTemplate>
                            <INPUT id="File1" type="file" runat="server">
                        </EditItemTemplate>
                    </asp:TemplateColumn>
                    <asp:BoundColumn DataField="name" ReadOnly="True"></asp:BoundColumn>
                    <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
                </Columns>
            </asp:DataGrid>
            <asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 160px; POSITION: absolute; TOP: 136px" runat="server">Label</asp:Label>
        </form>
    </body>

private void Page_Load(object sender, System.EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                DataGrid1.DataSource=Source();
                DataGrid1.DataBind();
            }
        }
        private DataTable Source()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("name",typeof(System.String)));
            DataRow dr = dt.NewRow();
            dr[0] = "1";
            dt.Rows.Add(dr);
            return dt;
        }
        private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            DataGrid1.EditItemIndex = (int)e.Item.ItemIndex;
            DataGrid1.DataSource=Source();
            DataGrid1.DataBind();
        }

        private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            System.Web.UI.HtmlControls.HtmlInputFile uplTheFile = e.Item.FindControl("File1") as System.Web.UI.HtmlControls.HtmlInputFile;
            if (uplTheFile.Value==null || uplTheFile.Value=="")
                Label1.Text = "Nothing to upload";
            else
                Label1.Text = "Do upload";
        }

/**********Comments***************************/
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
 #1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825969
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, conderol, Вы писали:

C> private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
C> {
C> System.Web.UI.HtmlControls.HtmlInputFile uplTheFile = e.Item.FindControl("File1") as System.Web.UI.HtmlControls.HtmlInputFile;
C> if (uplTheFile.Value==null || uplTheFile.Value=="")
C> Label1.Text = "Nothing to upload";
C> else
C> Label1.Text = "Do upload";
C> }

Проверка на существование файла сейчас проходит, а вот сохраняться он что-то не желает



            FileUpload1 = CType(e.Item.FindControl("FileUpload1"), HtmlInputFile)
            If (FileUpload1 Is Nothing) Then
                Message.Text = "Файл не выбран!"
            Else
                'если файл подгружен - добавляем товар
                'перемещаем файл в директорию "\images\"
                Dim ServerFileName As String = Request.PhysicalApplicationPath + "\images\" + source.DataKeys(e.Item.ItemIndex).ToString + ".jpg"
                FileUpload1.PostedFile.SaveAs(ServerFileName)



Object reference not set to an instance of an object. 

Line 293:                FileUpload1.PostedFile.SaveAs(ServerFileName)
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825980
conderol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нда... даже не знаю что сказать. System.Web.UI.HtmlControls.HtmlInputFile uplTheFile = e.Item.FindControl("File1") as System.Web.UI.HtmlControls.HtmlInputFile;
            if (uplTheFile.Value==null || uplTheFile.Value=="")
                Label1.Text = "Nothing to upload";
            else
                uplTheFile.PostedFile.SaveAs(Server.MapPath("uploadedFile.dat"));



и у меня всё сохраняется. Попробуй посмотреть в дебагере значение
ServerFileName . Может глюк в нём/**********Comments***************************/
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
 #1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825993
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, conderol, Вы писали:

C>Нда... даже не знаю что сказать. System.Web.UI.HtmlControls.HtmlInputFile uplTheFile = e.Item.FindControl("File1") as System.Web.UI.HtmlControls.HtmlInputFile;
C>            if (uplTheFile.Value==null || uplTheFile.Value=="")
C>                Label1.Text = "Nothing to upload";
C>            else
C>                uplTheFile.PostedFile.SaveAs(Server.MapPath("uploadedFile.dat"));



C>и у меня всё сохраняется. Попробуй посмотреть в дебагере значение
C>ServerFileName . Может глюк в нём

Дебагер говорит, что там:

ServerFileName "C:\Inetpub\wwwroot\ceo_test\images\1.jpg" String

Но не сохраняется.

FileUpload1 = CType(e.Item.FindControl("FileUpload1"), HtmlInputFile)

Значение FileUpload1 какое-то присваивается. А вот FileUpload1.PostedFile — Nothing, и FileUpload1.Value — "" почему-то пустые.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825994
conderol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таких случаях я бы посоветовал сделать новую страничку и заюзать там тот код что я дал. Если он пройдёт то ощибка у вас где то в другом месте. Может FileUpload1 определён где то ещё/**********Comments***************************/
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
 #1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33825995
conderol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В любом случае желаю удачи. У меня уже 12 ночи и я отключаюсь. Завтра утром посмотрю на результат. Удачи/**********Comments***************************/
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things:
 #1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33826001
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Указанный в примере датагрид почему-то не хочет переходить в режим редактирования.
...
Рейтинг: 0 / 0
..опять загрука файла ((
    #33826064
Fixer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попробовал форму с одним аплоадом:



<%@ Page Language="vb" AutoEventWireup="false" Codebehind="upl.aspx.vb" Inherits="ceo_test.upl"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
    <HEAD>
        <title>upl</title>
        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body>
        <form id="Form1" enctype="multipart/form-date" method="post" runat="server">
            <P>
                <INPUT type="file" runat="server" id="fileUpl" name="fileUpl">&nbsp;
                <asp:Button id="Button1" onclick="make_upload" runat="server" Text="Upload"></asp:Button></P>
            <P>
                <asp:Label id="Message" runat="server"></asp:Label></P>
        </form>
    </body>
</HTML>



Public Class upl
    Inherits System.Web.UI.Page

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Message As System.Web.UI.WebControls.Label

    'NOTE: The following placeholder declaration is required by the Web Form Designer.
    'Do not delete or move it.
    Private designerPlaceholderDeclaration As System.Object

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region
    Public fileUpl As HtmlInputFile
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
    End Sub
    Sub make_upload(ByVal sender As Object, ByVal e As System.EventArgs)
        If (fileUpl Is Nothing) Then
            Message.Text = "Файл не выбран!"
        Else
            'если файл подгружен - добавляем товар
            'перемещаем файл в директорию "\images\"
            Dim ServerFileName As String = Request.PhysicalApplicationPath + "images\1.jpg"
            fileUpl.PostedFile.SaveAs(ServerFileName)
        End If
    End Sub
End Class

Всё равно не работает, зараза.
В fileUpl — появляется сам объект, а файл не передаётся. Из Request.Files("fileUpl") тоже пробовал файл доставать, безрезультатно :crash:
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ..опять загрука файла ((
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]