#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. Посмотрите, в чем разница между вашими другими формами и этой формой, любыми настройками состояния просмотра на уровне страницы, настройками состояния просмотра на родительском уровне и т. Д. таким образом, вы можете правильно разобраться в проблемных областях