簡體   English   中英

如何重命名上傳的文件 asp.net core mvc

[英]How to rename uploaded files asp.net core mvc

我創建了一個這樣的上傳鏈接在此處輸入圖片說明 這是我在控制器中的代碼

    [HttpPost]
    public async Task<IActionResult> Index(ICollection<IFormFile> files)
    {
        var uploads = Path.Combine(_environment.WebRootPath, "UploadedFiles/Archives");
        foreach (var file in files)
        {
            if (file.Length > 0)
            {

                using (var fileStream = new FileStream(Path.Combine(uploads, file.FileName), FileMode.Create))
                {
                    await file.CopyToAsync(fileStream);
                }
            }
        }
        return View();
    }

它將文件保存在用戶定義的名稱中。 就像“校友調查.pdf” 在此處輸入圖片說明

我想將“Alumni Survey.pdf”重命名為“2017.pdf”,我該怎么做? 除了我想限制用戶只能上傳 .pdf 文件,我應該搜索什么?

我想將“Alumni Survey.pdf”重命名為“2017.pdf”,我該怎么做?

只是不要使用file.FileName並將其命名為您想要的任何名稱。

[HttpPost]
public async Task<IActionResult> Index(ICollection<IFormFile> files) {
    var uploads = Path.Combine(_environment.WebRootPath, "UploadedFiles/Archives");
    foreach (var file in files) {
        if (file.Length > 0) {
            using (var fileStream = new FileStream(Path.Combine(uploads, "<My file name here>"), FileMode.Create)) {
                await file.CopyToAsync(fileStream);
            }
        }
    }
    return View();
}

請注意,由於您有一組文件,因此在命名它們時需要滿足上傳中的多個文件。 不能全部命名。

我想限制用戶只能上傳 .pdf 文件,

對於文件限制,請使用文件輸入標簽中的accept屬性accept="application/pdf"

<input type="file" 
       class="form-control" 
       id="files" 
       name="files"
       accept="application/pdf">
    public IActionResult FileUpload()
    {
        try
        {
            var file = Request.Form.Files[0];
            var folderName = Path.Combine("Resources", "Files");
            var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);

            if (file.Length > 0)
            {
                var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                //var fullPath = Path.Combine(pathToSave, fileName);
                string renameFile = Convert.ToString(Guid.NewGuid()) + "." + fileName.Split('.').Last();
                var fullPath = Path.Combine(pathToSave, renameFile);
                var dbPath = Path.Combine(folderName, fileName);

                using (var stream = new FileStream(fullPath, FileMode.Create))
                {
                    file.CopyTo(stream);
                }
                return Ok(new { renameFile });
            }
            else
            {
                return BadRequest();
            }
        }
        catch (Exception ex)
        {
            return StatusCode(500, "Internal server error");
        }
    }`

在此處輸入圖片說明

要重命名文件,請使用如下所示的Move 對於 oldFilePath 和 newFilePath 把你以前的文件路徑和要更改的新文件名的文件路徑。

 System.IO.File.Move(oldFilePath, newFilePath);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM