Что эквивалентно переменной PHP $ _FILES в C#? Или, по крайней мере, то, что обращается к файлам таким же образом. У меня есть форма загрузки, которую я не могу изменить, и вам нужно выяснить, как добраться до этих файлов.
2
A
ответ
9
Взгляните на Request.Files
, например:
foreach (HttpPostedFile item in Request.Files)
{
var filename = item.FileName;
var fileBytes = new byte[item.ContentLength];
item.InputStream.Read(fileBytes, 0, item.ContentLength);
// fileBytes now contains the content of the file
// filename contains the name of the file
}
2
У вас будет HttpRequest
объект передается в обработчику, не так ли? Просто доступ Files
свойства этого объекта:
for (int i = 0; i < request.Files.Count; i++)
{
var file = request.Files[i];
// Do something with this file, for example:
file.SaveAs(Path.Combine(someDirectory, file.FileName));
}
0
Вы можете также использовать иногда (например, с Uploadify) параметр HttpPostedFileBase:
Ex:
public ActionResult UploadPicture(HttpPostedFileBase fileData){
img = Image.FromStream(fileData.InputStream, true, true);
}
Почему downvote без комментариев относительно того, почему ? – Rob
Downvoted, потому что использование 'Stream.Read()' является ошибкой: оно может не читать всю длину содержимого. Вам нужно будет использовать цикл; или вы можете создать экземпляр 'MemoryStream', а затем использовать' item.InputStream.CopyTo() '. – Timwi
@Rob: потому что может потребоваться несколько человек чуть более 21 секунды, чтобы написать осмысленный, не-глупый комментарий. – Timwi