【发布时间】:2015-10-09 11:25:34
【问题描述】:
@Path("/files")
public class fileupload {
private String storageConnectionString=
"DefaultEndpointsProtocol=http;" +
"AccountName=xxxxxxxxxxx;" +
"AccountKey=xxxxxxxxxxxxxxxxxxxxx";
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response mymethod(
@FormDataParam("file") InputStream fileInputStream,
@FormDataParam("file") FormDataContentDisposition contentDispositionHeader
)
{
String fileName = contentDispositionHeader.getFileName();
UploadtoAzureStorage(fileInputStream,fileName);
String result="File saved to Azure storage, container name: \"mycontainer\"";
return Response.status(200).entity(result).build();
}
public void UploadtoAzureStorage(InputStream fileInputStream,String filename)
{
try
{
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
CloudBlobClient blobClient = storageAccount.createCloudBlobClient();
CloudBlobContainer container = blobClient.getContainerReference("mycontainer");
byte[] bytes = IOUtils.toByteArray(fileInputStream);
CloudBlockBlob blob = container.getBlockBlobReference(filename);
blob.upload(fileInputStream,bytes.length);
}
catch (Exception e)
{
e.printStackTrace();
}
}
图像名称上传到我的天蓝色存储 blob 容器,但图像未上传。它显示为 0B 图像。
【问题讨论】:
-
不确定如何在 Java 中执行此操作,但尝试在上传之前将
InputStream位置重置为0。