gpt4 book ai didi

java - 如何将图像上传到 Azure 中的 blob?

转载 作者:行者123 更新时间:2023-11-29 05:36:44 25 4
gpt4 key购买 nike

我使用的代码的问题是该文件出现在 blob 中,但显示为 0B 大小的文件。就好像没有数据写入 blob 中一样。

这是我在 JSP 中使用的表单:

<form method="POST" action="UploadServlet" enctype="multipart/form-data" >
<input type="file" name="file" id="file" /> <br/>
</br>
<input type="submit" value="Upload" name="upload" id="upload" />
</form>

我的 servlet 中有以下代码:

    try {
CloudStorageAccount account;
CloudBlobClient serviceClient;
CloudBlobContainer container;
CloudBlockBlob blob;

account = CloudStorageAccount.parse(storageConnectionString);
serviceClient = account.createCloudBlobClient();
container = serviceClient.getContainerReference("gettingstarted");
container.createIfNotExist();

// Set anonymous access on the container.
BlobContainerPermissions containerPermissions;
containerPermissions = new BlobContainerPermissions();
containerPermissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER);
container.uploadPermissions(containerPermissions);

FileItemFactory factory = new DiskFileItemFactory();

ServletFileUpload fileUpload = new ServletFileUpload(factory);

//process only if its multipart content
InputStream is = null;
if (ServletFileUpload.isMultipartContent(request)) {
List items = fileUpload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
is = item.getInputStream();
String name = new File(item.getName()).getName();
System.out.println(name);
blob = container.getBlockBlobReference(name);
File fileReference = new File(item.getName());
System.out.println(is);
blob.upload(is, fileReference.length());
}
}
}
is.close();

request.getRequestDispatcher("hello").forward(request, response);

} catch (Exeption e) {
}

最佳答案

我不知道 Java 中的等效语法,但在 C# 中,您经常必须将流中的位置重置回 0,然后再将其传递给 blob 上传方法(如果流已经被加载,通常会出现这种情况)阅读 - 它会让你获得长度)。类似的东西

is.position = 0;
blob.upload(is, fileReference.length());

关于java - 如何将图像上传到 Azure 中的 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com