Asp.net 为上载的文件创建新文件夹-Razor引擎

Asp.net 为上载的文件创建新文件夹-Razor引擎,asp.net,razor,asp.net-webpages,Asp.net,Razor,Asp.net Webpages,我正在查看这个教程 在本主题中,我看到可以将各种文件发送到目标文件夹 我的问题是,当用户发送一个或多个文件时,如何创建新目录 @using Microsoft.Web.Helpers; @{ var message = ""; if (IsPost) { var fileName = ""; var fileSavePath = ""; int numFiles = Request.Files.Count; int uploadedCount = 0; for(in

我正在查看这个教程

在本主题中,我看到可以将各种文件发送到目标文件夹

我的问题是,当用户发送一个或多个文件时,如何创建新目录

@using Microsoft.Web.Helpers;
@{
  var message = "";
  if (IsPost) {
  var fileName = "";
  var fileSavePath = "";
  int numFiles = Request.Files.Count;
  int uploadedCount = 0;
  for(int i =0; i < numFiles; i++) {
      var uploadedFile = Request.Files[i];
      if (uploadedFile.ContentLength > 0) {
          fileName = Path.GetFileName(uploadedFile.FileName);
          fileSavePath = Server.MapPath("~/uploadedFiles/" + fileName);
          uploadedFile.SaveAs(fileSavePath);
          uploadedCount++;
      }
   }
   message = "File upload complete. Total files uploaded: " + uploadedCount.ToString();
   }
}
<!DOCTYPE html>
<html>
<head><title>FileUpload - Multiple File Example</title></head>
<body>
<form id="myForm" method="post"
   enctype="multipart/form-data"
   action="">
<div>
<h1>File Upload - Multiple-File Example</h1>
@if (!IsPost) {
    @FileUpload.GetHtml(
        initialNumberOfFiles:2,
        allowMoreFilesToBeAdded:true,
        includeFormTag:true,
        addText:"Add another file",
        uploadText:"Upload")
    }
<span>@message</span>
</div>
</form>
</body>
</html>
@使用Microsoft.Web.Helpers;
@{
var message=“”;
如果(IsPost){
var fileName=“”;
var fileSavePath=“”;
int numFiles=Request.Files.Count;
int uploadedCount=0;
对于(int i=0;i0){
fileName=Path.GetFileName(uploadedFile.fileName);
fileSavePath=Server.MapPath(“~/uploadedFiles/”+文件名);
uploadedFile.SaveAs(fileSavePath);
uploadedCount++;
}
}
message=“文件上载完成。上载的文件总数:”+uploadedCount.ToString();
}
}
FileUpload-多文件示例
文件上载-多文件示例
@如果(!IsPost){
@FileUpload.GetHtml(
initialNumberOfFiles:2,
AllowMoreFilesToHeadded:true,
是的,
addText:“添加另一个文件”,
上传文本:“上传”)
}
@信息

在保存文件之前,创建所需的文件夹。将自动在指定路径中创建您的文件夹和任何其他不存在的文件夹。创建目标文件夹后,只需将文件保存到该位置

if (uploadedFile.ContentLength > 0) {
      fileName = Path.GetFileName(uploadedFile.FileName);

      string pathToSave = Server.MapPath("~/") + "/uploadedFiles/" + yourCustomFolderName;
      Directory.CreateDirectory(pathToSave);

      fileSavePath = pathToSave + fileName;

      uploadedFile.SaveAs(fileSavePath);
      uploadedCount++;
  }

感谢@Andrei V的回答,我试图将您的代码复制到teste,并得到以下错误:编译器错误消息:CS1026:)预期源错误:编译器错误消息:CS1026:)预期源错误:第13行:fileName=Path.GetFileName(uploadedFile.fileName);第14行:第15行:字符串pathToSave=Server.MapPath(“~/uploadedFiles/”+yourCustomFolderName第16行:Directory.CreateDirectory(pathToSave);第17行:@Nibbler,我忘了关闭括号。请立即检查。如果仍然出现错误,请发布其内容,而不仅仅是发生错误的那一行。编译器错误消息:CS1002:;预期第15行:string pathToSave=Server.MapPath(“~/”+”/uploadedFiles/)+yourCustomFolderName已更新。请注意,您需要声明一个变量
yourCustomFolderName
,该变量包含要保存的(子)文件夹的名称或硬编码值,如“dataFiles”。好的,经过一些尝试和研究,我得出了以下结论:uploadedFile.SaveAs(Path.Combine(pathToSave,fileName));而且效果很好。再次感谢您的指导