【问题标题】:refused to connect when uploading files in razor pages在剃须刀页面中上传文件时拒绝连接
【发布时间】:2020-07-24 07:30:48
【问题描述】:

我试图在我的项目中进行文件上传。问题是每当我单击提交按钮时,我得到的只是 ERR_CONNECTION_REFUSED。我的页面代码如下:

@page
@model EShop.Pages.Administration.UploadImageModel
@{
    ViewData["Title"] = "UploadImage";
    Layout = "~/Pages/Administration/Shared/_AdminLayout.cshtml";
}

<h1>Upload obrázků</h1>

<form method="post" enctype="multipart/form-data">
    <input type="file" multiple asp-for="Uploads" />
    <input type="submit" />
</form>

和:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace EShop.Pages.Administration
{
    public class UploadImageModel : PageModel
    {

        private IWebHostEnvironment _environment;
        public UploadImageModel(IWebHostEnvironment environment)
        {
            _environment = environment;
        }
        [BindProperty]
        public IList<IFormFile> Uploads { get; set; }

        public async Task OnPostAsync ()
        {
            foreach (var u in Uploads)
            {
                var file = Path.Combine(_environment.ContentRootPath, "uploads", u.FileName);
                using (var fileStream = new FileStream(file, FileMode.Create))
                {
                    await u.CopyToAsync(fileStream);
                }
            }
        }
    }
}

这有什么问题吗?还是其他地方出错了?

【问题讨论】:

    标签: c# file file-upload razor-pages


    【解决方案1】:

    我能够创建一个干净的项目并复制到您的 UploadImage 代码中,它可以按预期工作。我不知道您是否打算这样做,但您可能还需要在您的类中使用 OnGet 方法处理程序。此外,您目前只上传一个文件,所以我不确定您是否打算将 Uploads 声明为一个列表。

    这里是 UploadImage.cshtml 代码:

    @page
    @model StarterWebApplication.Pages.UploadImageModel
    @{
        ViewData["Title"] = "UploadImage";
    }
    
    <h1>UploadImage</h1>
    
    <form method="post" enctype="multipart/form-data">
        <input type="file" multiple asp-for="Uploads" />
        <input type="submit" />
    </form>
    

    这里是 UploadImage.cshtml.cs 代码:

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.Http;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.AspNetCore.Mvc.RazorPages;
    
    namespace StarterWebApplication.Pages
    {
        public class UploadImageModel : PageModel
        {
            //public void OnGet()
            //{
    
            //}
    
            private IWebHostEnvironment _environment;
            public UploadImageModel(IWebHostEnvironment environment)
            {
                _environment = environment;
            }
            [BindProperty]
            public IList<IFormFile> Uploads { get; set; }
    
            public async Task OnPostAsync()
            {
                foreach (var u in Uploads)
                {
                    var file = Path.Combine(_environment.ContentRootPath, "uploads", u.FileName);
                    using (var fileStream = new FileStream(file, FileMode.Create))
                    {
                        await u.CopyToAsync(fileStream);
                    }
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 2021-12-18
      • 2022-10-13
      • 2018-12-03
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多