0

在正确以...开头的“创建”视图中

@using (Html.BeginForm("Create", "Song", FormMethod.Post, new { enctype = "multipart/form-data" }))

在其他几个领域中有一个...

<div class="editor-field">
    <input type='file' name="SongFileUpload" id="SongFileUpload" onchange="readURL(this);" />
    @Html.ValidationMessageFor(model => model.SongData)
</div>

以一个结尾

<p>
    <input type="submit" value="Create" />
</p>

如果我浏览并选择一个在名称中包含开头和结尾括号的文件名...当我单击“创建”按钮提交它时...当刚刚运行 localhost 服务器时 VS2010 提供...它只是跳到...的 IE (v10) 错误

>This page can't be displayed
>
>•Make sure the web address http://localhost:63129 is correct.  
>•Look for the page with your search engine.  
>•Refresh the page in a few minutes.

起初我认为这可能是因为文件名以“@”符号开头。但不是这样,因为我可以选择另一个文件名,该文件名同样长但不包含括号,它会跳转到

[HttpPost] 
public ActionResult Create( )

就像它应该的那样,一切都按它应该的方式工作。

这到底是怎么回事?

下面是“readURL()”函数的 JavaScript。

function readURL(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#SongMimeType').attr('value', input.files[0].type);
            $('#SongData').InnerHtml = (e.target.result);
        }

        reader.readAsDataURL(input.files[0]);
    }
}

我的猜测是 JavaScript 函数可能会爆炸?
我将如何修复它以处理带括号的文件名?

4

0 回答 0