Формат данного пути не поддерживается - IE8

1

Попытка загрузить файл excel. Код отлично работает в chrome & firefox. Он вызывает эту ошибку в IE8. Как я могу это исправить.

private const string ExcelUploadPath = "~/UploadedFiles/";

private void SomeFunction()
{
  string dirPath = Server.MapPath(ExcelUploadPath);      
  string ErrorMsg = SaveUploadedFile(fupCtrl, dirPath)
}

private string SaveUploadedFile(FileUpload fupCtrl, string dirPath)
    {
        try
        {
            string sFileName = "";
            Random ranObj = null;
            int nRandomNum = 0;
            ranObj = new Random();
            nRandomNum = ranObj.Next();
            sFileName = fupCtrl.PostedFile.FileName;
            sFileName = sFileName.Substring(0, sFileName.LastIndexOf(".") - 1);
            sFileName = sFileName + "_" + nRandomNum.ToString();
            sFileName = sFileName + 
                 fupCtrl.FileName.Substring(fupCtrl.FileName.LastIndexOf("."));

            fupCtrl.SaveAs(dirPath + sFileName); //exception here

            return sFileName;            
        }
        catch (Exception ex)
        {
          return ex.Message.ToString();       
        }        
    }
Теги:

3 ответа

3
Лучший ответ

FileUpload.PostedFile.FileName возвращает полное имя файла на клиенте (включая путь)

Класс Path предлагает множество методов для работы со строками, представляющими пути.

  sFileName = Path.GetFileNameWithoutExtension(fupCtrl.PostedFile.FileName);
  sFileName += "_" + nRandomNum.ToString();
  sFileName += Path.GetExtension(fupCtrl.FileName);
  fupCtrl.SaveAs(Path.Combine(dirPath, sFileName));
  • 0
    Огромное спасибо!!!!!!!!
1

Попробуйте это, это может быть работа.

 private const string ExcelUploadPath = "~//UploadedFiles//";
  • 0
    Не сработало....
0
HttpPostedFile postedFile = context.Request.Files[FileObject];                
                string filename = Path.GetFileNameWithoutExtension(postedFile.FileName);
  • 0
    Пожалуйста, отредактируйте с дополнительной информацией. Ответы «только код» и «попробуй это» не приветствуются, потому что они не содержат контента для поиска и не объясняют, почему кто-то должен «попробовать это». Мы прилагаем все усилия, чтобы быть источником знаний.
  • 0
    Добро пожаловать в StackOverflow! Пожалуйста, поместите хотя бы одну пояснительную строку поверх вашего Cod.e и убедитесь, что это либо ваша интеллектуальная работа, либо цитируется правильно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню