Метод SaveAs настроен для требования внедренного пути, и путь 'fp' не базирован

Многие люди предложили Погружение В Python, который является, вероятно, лучшей книгой Python там для кого-то, кто уже хороший программист. Однако, если Вы плохо знакомы с программированием, лучшая книга, вероятно, "Как Думать Как Программист: Изучение С Python" ( http://openbookproject.net/thinkCSpy/index.xhtml )

11
задан Majid 6 November 2018 в 11:21
поделиться

3 ответа

Я подозреваю, что проблема в том, что вы используете строку «fp» вместо переменной fp . Вот фиксированный код, также сделанный (IMO) более читабельным:

string filename = tt.PostedFile.FileName;
int lastSlash = filename.LastIndexOf("\\");
string trailingPath = filename.Substring(lastSlash + 1);
string fullPath = Server.MapPath(" ") + "\\" + trailingPath;
tt.PostedFile.SaveAs(fullPath);

Вам также следует подумать об изменении предпоследней строки на:

string fullPath = Path.Combine(Server.MapPath(" "), trailingPath);

Вы также можете подумать, что произойдет, если опубликованный файл будет использовать / вместо \ в имени файла ... например, если он публикуется из Linux. Фактически, вы можете полностью изменить первые три строки на:

string trailingPath = Path.GetFileName(tt.PostedFile.FileName));

Объединив их, мы получим:

string trailingPath = Path.GetFileName(tt.PostedFile.FileName));
string fullPath = Path.Combine(Server.MapPath(" "), trailingPath);
tt.PostedFile.SaveAs(fullPath);

Намного чище, IMO :)

27
ответ дан 3 December 2019 в 01:53
поделиться

Если вы хотите сохранить загруженный файл со значением fp, просто передайте его, не заключая в кавычки:

tt.PostedFile.SaveAs(fp);
2
ответ дан 3 December 2019 в 01:53
поделиться

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

2
ответ дан 3 December 2019 в 01:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: