我在asp.net 4.5解决方案中具有如下所示的HTML代码,使用户能够选择要上传到服务器的文件。
<input class="form-control valid" id="rptScreenShot" type="text" style="float:left;" runat="server"
data-val="true" data-val-maxlength="The field Report Sample must be a string or array type with a maximum length of '600'."
data-val-maxlength-max="600" value="" aria-invalid="false" />
<label class="btn btn-default btn-file">
Browse <input class="form-control" id="upld_sample1" type="file" name="file_rptsample1" style="display: none;">
</label>
然后,我尝试使用FormData将文件上传到服务器,如下所示:
<script>
document.getElementById('upld_sample1').onchange = function () {
var fileInput = document.getElementById('upld_sample1');
var file = fileInput.files[0];
var formData = new FormData();
formData.append('file', file);
var xhr = new XMLHttpRequest();
xhr.open('POST', '/upload/path', true);
xhr.send(formData);
};
</script>
但是我收到以下错误:
无法加载资源:服务器的响应状态为405(不允许使用方法)
当我将POST更改为GET时,我看到了错误:403 FORBIDDEN
我无法解决。我也可以通过其他方式将文件发送到服务器。任何帮助或建议,将不胜感激。
您的问题在后端,而不是在JavaScript中。您的后端服务器拒绝POST方法,并且鉴于您使用GET方法获得了禁止的错误,因此在端点“ / upload / path”上似乎存在访问控制。您可以向我们展示“ / upload / path”后面的后端代码吗?