Элемент управления загрузкой файлов не принимает имя файла

#c# #asp.net

#c# #asp.net

Вопрос:

Я использую элемент управления загрузкой файлов для загрузки изображений, я могу выбрать изображение с помощью этой кнопки просмотра, но когда я пытаюсь просмотреть это выбранное, я не получаю имя файла, оно отображается пустым..

 protected void btnImgUpload_Click(object sender, ImageClickEventArgs e)
{
    try
    {
        string strimage;
        string strfilename, strextn;
        if (fupImage.HasFile)
        {
 

В приведенном выше коде fupImage.FileName свойство должно иметь выбранное имя изображения, но оно остается пустой строкой «» , поэтому fubImage.HasFile условие становится ложным. Я не понимаю, почему условие становится ложным, пока файл выбран,? в чем здесь проблема?

Заранее спасибо

Комментарии:

1. что такое fupImage ? Где это определено?

2. Проверьте свойство View-state этого элемента управления загрузчиком файлов, если View-state имеет значение false, то при отправке обратно вы получите пустое значение

3. @AlastairPitts fupImage — это имя объекта управления загрузкой файлов, я думаю.

4. @Ates, вы правы, fupImage — это элемент управления загрузкой файлов..

5. Я использую UpdatePanel, что мне нужно сделать, чтобы получить имя файла в элементе управления загрузкой файлов?

Ответ №1:

что я сделал для его тестирования, так это создал страницу Asp

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <asp:FileUpload ID="fupImage" runat="server" />
        <asp:Button ID="btnImageUpload" runat="server" onclick="btnImageUpload_Click" 
            Text="Upload" />

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

и код, лежащий в основе класса

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }


        protected void btnImageUpload_Click(object sender, EventArgs e)
        {
            try
            {
                string strimage;
                string strfilename, strextn;
                if (fupImage.HasFile)
                {
                    //do something
                }
            }
            catch
            {
            }
        }
    }
}
 

и с этим все в порядке

Я хочу сказать, что для его тестирования просто создайте очень простой экземпляр и протестируйте его в сложной среде, возможно, есть некоторые дополнительные правила, которые могут препятствовать нормальной работе! и иногда это выглядит так ненормально

Комментарии:

1. Эта загрузка файла отлично работает в отдельном приложении, но то же самое не работает в моем основном приложении, если (fupImage. Условие HasFile) становится ложным, по-прежнему отображается FileUploader. Имя файла только пустое.. Я не знаю, почему он не принимает имя файла.

2. я. я использую панель обновления. но он отлично работает в старых формах с панелью обновления. тот же код не работает в моем.

3. загрузка файлов не может работать в асинхронном режиме см. Эту ссылку asp.net/general/videos /…

4. извините, этот сайт заблокирован здесь: (что это за асинхронный режим, когда все работает нормально?

Ответ №2:

Проверьте свойство View-state этого элемента управления загрузчиком файлов, если View-state имеет значение false, то при отправке обратно вы получите пустое значение

Комментарии:

1. Свойство EnableViewState по умолчанию имеет значение true. Уже созданные элементы управления загрузкой изображений хорошо работают в других формах, а также тот же код работает нормально отдельно, новый, который я создал, только не работает.

2. Посмотрите, в чем разница между вашими другими формами и этой формой, любыми настройками состояния просмотра на уровне страницы, настройками состояния просмотра на родительском уровне и т. Д. таким образом, вы можете правильно разобраться в проблемных областях