VB.NET 想通过JavaScript的FormData对象同时上传多张图片到服务器,后端代码
时间: 2024-09-30 20:10:57 浏览: 48
在VB.NET中,如果你想要通过JavaScript的FormData对象同时上传多张图片到服务器,前端需要对选中的所有图片进行多次循环并添加到FormData。后端代码则需要遍历这个FormData对象,每接收到一张图片就处理它。以下是基本的步骤:
前端(JavaScript):
```javascript
function batchUploadFiles(files) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
var formData = new FormData();
formData.append('images[]', file, file.name); // 使用数组形式来处理多个文件
// 发送请求到后端
fetch('/api/batch-upload', {
method: 'POST',
body: formData,
headers: {'X-Requested-With': 'XMLHttpRequest'} // 防止CORS跨域问题
})
.then(handleResponse)
.catch(uploadError);
}
}
// ...其他处理函数(如handleResponse和uploadError)
```
后端(VB.NET,假设是ASP.NET Core Web API):
```csharp
using System.Collections.Generic;
using Microsoft.AspNetCore.Http;
[HttpPost]
[Consumes(MediaType.MediaType.FormUrlEncoded)]
public IActionResult BatchUpload([FromForm] IEnumerable<IFormFile> images)
{
List<byte[]> compressedImages = new List<byte[]>();
foreach (var image in images)
{
if (image != null && image.Length > 0)
{
try
{
// 假设CompressImage方法用于压缩图片
byte[] compressedData = CompressImage(image.OpenReadStream());
// 存储压缩后的图片数据
compressedImages.Add(compressedData);
}
catch (Exception ex)
{
// 处理上传错误
return StatusCode(StatusCodes.Status400BadRequest, ex.Message);
}
}
}
// 如果所有的图片都成功上传,可以将它们打包成响应或者分别发送
// 这里仅示例返回压缩后的数据列表
return Ok(compressedImages);
}
private byte[] CompressImage(Stream inputStream)
{
// 编码细节,使用合适的库实现图片压缩
// ...
}
```
阅读全文
相关推荐


















