Mam formularz na stronie HTML, który użytkownik musi użyć, aby przesłać plik, który publikuje na stronie ASPX. W kodzie z tyłu chcę przetestować, czy plik został załadowany.HTTPRequest.Files.Count Nigdy nie równa się zero
if (Request.Files.Count > 0)
{
DoStuff(Request.Files[0]);
}
else
{
throw new Exception("A CSV file must be selected for upload.");
}
Nigdy nie dostaję się do czegoś innego. Czy tak działa ASP.NET? Jeśli mam element wejściowy pliku typu, czy zawsze będzie przesyłał "plik", nawet jeśli nie został wybrany?
Jaki jest właściwy sposób na zrobienie tego? Może to?
if (Request.Files.Count > 0 && Request.Files[0].ContentLength > 0)
{
DoStuff(Request.Files[0]);
}
else
{
throw new Exception("A CSV file must be selected for upload.");
}
Niestety, jeśli uzyskasz dostęp do właściwości Pliki w ogóle, nie możesz później wywołać Request.GetBufferlessInputStream: "Ta metoda lub właściwość nie jest obsługiwana po wywołaniu HttpRequest.Form, Files, InputStream lub BinaryRead" – dudeNumber4
@ dudeNumber4 Tak jest wybrana odpowiedź niepoprawna? Nie mam Visual Studio na tym komputerze teraz do zbadania – kzh
Cóż, to jest dla mnie niepoprawne, ponieważ muszę uzyskać dostęp do tej metody w celu fragmentacji (duże) przesłanych plików, tak aby nie przeciążenie pamięci serwera.Jeśli nie potrzebujesz dostępu do tej metody, to przypuszczam, że nic ci nie jest. – dudeNumber4