Я просматривал из "C: /Orange.jpg" для загрузки, и результатом в Code Behind является просто имя изображения "Orange.jpg", а не полное "C: /Orange.jpg", которое необходимо для получения файл с локального диска для загрузки.
Вы не сможете извлечь файл с компьютера клиента. Когда вы разрабатываете свою программу, клиент и сервер - это одна и та же машина, но при ее развертывании сервер и клиент будут разными машинами. Когда код позади выполняется (на сервере), если вы пытаетесь открыть C: \ Orange.jpg, вы пытаетесь открыть его с жесткого диска сервера. Этот файл, вероятно, не будет существовать.
Когда вы загружаете файл с веб-страницы, он будет опубликован на сервере как часть сообщения POST. Вы можете получить этот файл из коллекции Form. Вам не нужно преобразовывать загрузчик в элемент управления ASP.NET или добавлять атрибут runat="server"
. До тех пор, пока вы разместите форму, которая содержит элемент ввода, она будет отправлена на сервер.
Содержимое файла будет сохранено в виде байтового массива в форме. Вы можете сохранить этот байтовый массив как файл где-нибудь на жестком диске сервера.
В итоге:
Вам не нужно знать путь к файлу на компьютере клиента, так как вы все равно не можете получить к нему доступ. Вместо этого используйте данные файла, которые публикуются как часть отправки формы, чтобы сохранить копию файла на сервере.