如何使用文件上传?

时间:2020-04-08 17:12:53

标签: c# html razor file-upload

我的文件上传不起作用。每次尝试都会出现此错误:Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

我正在执行.cshtml文件中的所有操作,因为前一位网站管理员在被解雇时删除了所有源代码。因此,我只有部署的文件可以使用,而没有控制器和模型。我也无法在网站上添加任何新功能。

在上传单个文件之后,我使用了本教程this tutorial

这是我的代码:

@using Microsoft.Web.Helpers;
@{
    Layout="~/Views/Shared/_FUllWidthLayout.cshtml";

    var message="";
    if(IsPost){
        if(Request.Files.Count > 0){ //<-- If more than 0 files, FAILS HERE
            try{
                var uploadedFile = Request.Files[0];  //<-- FAILS HERE
                var fileName = Path.GetFileName(uploadedFile.FileName);
                var fileSavePath = Server.MapPath("~/Documents/Jobs/" + fileName);
                uploadedFile.SaveAs(fileSavePath);
                message = Request.Files.Count + " files uploaded to " + fileSavePath;
            }
            catch(Exception e){
                message = e.Message;
            }
        }else{
            message = Request.Files.Count + " files uploaded.";
        }
    }
}

还有我的HTML:

<form id="uploadForm" method="post" enctype="multipart/form-data">
    <h3>FileUpload - Single-File Example</h3>
    <div class="inline-div">
        @FileUpload.GetHtml(
            initialNumberOfFiles:1,
            allowMoreFilesToBeAdded:false,
            includeFormTag:true,
            uploadText:"Upload")

        <small class="red">@message</small>
    </div>
</form>

我还尝试将FileUpload控件从这样的形式中删除:

<h3>FileUpload - Single-File Example</h3>
<div class="inline-div">
    @FileUpload.GetHtml(
        initialNumberOfFiles:1,
        allowMoreFilesToBeAdded:false,
        includeFormTag:true,
        uploadText:"Upload")
    <small class="red">@message</small>
</div>

消息说“ 0个文件已上传”。如此处所示:enter image description here

谁能指出我做错了什么以及如何解决?还是有另一个我可以用来完成相同工作的工具?

0 个答案:

没有答案