我有一个应用程序,我想上传两个图像,一个是普通图像,第二个是缩略图。我现在忽略缩略图,只关注主图像。我正在进行的步骤如下:
第1步:上传图片第2步:获取下载链接为字符串第3步:在Firebase实时数据库中添加下载链接
我被困在步骤2我已经做了以下:
else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
{
Uri resultUri = result.getUri();
File thumb_filePath = new File(resultUri.getPath());
Bitmap thumb_bitmap = null;
try {
thumb_bitmap = new Compressor(this)
.setMaxWidth(200)
.setMaxHeight(200)
.setQuality(75)
.compressToBitmap(thumb_filePath);
} catch (IOException e) {
e.printStackTrace();
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
thumb_bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
final byte[] thumb_byte = baos.toByteArray();
final StorageReference mStorageThumbPathRef = mStorageRef.child("chatappthumbimg").child(current_userid + ".jpg");
final StorageReference mStoragePathRef = mStorageRef.child("chatappimg").child(current_userid + ".jpg");
UploadTask uploadTask;
uploadTask = mStoragePathRef.putFile(resultUri);
Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
// Continue with the task to get the download URL
return mStoragePathRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
} else {
// Handle failures
// ...
}
}
});
}
}
}
我使用文档来帮助:https://firebase.google.com/docs/storage/android/upload-files
然而,现在我不确定如何继续。是否mStoragePathRef.getDownloadUrl();给我回图像的真实网址?因为在之前的一些测试中,我得到了某种任务,而不是图像网址
对于任何可能陷入同样困境的人,Uri downloadUri=task。getResult();是一个有真正的下载url
根据上面的评论,OP要求查看我在我的项目中处理上传的方式——不幸的是,这不是Android。我不认为这会有多大帮助,因为这不是正确的语言,但尽你所能从中吸取教训。
具体来说,这是在AngularFire2包的Angular6中完成的。我包括了完整的函数以供参考,但相关部分已接近尾声,讨论了这一点。下载urloadUrlObservable
和此。下载URLSubscription$
// Uploads file to Firebase storage, and returns the file's access URL
pushUpload(pageName, upload) {
// Returns a promise, so we can use .then() when pushUpload is called
return new Promise( (resolve, reject) => {
this.uploadPercent = 0;
// Include the current timeStamp in the file name, so each upload can be uniquely identified - no 1 photo will ever be used in 2 places, can safely delete this file later w/o fear of messing up something else
const timeStamp = new Date().getTime();
// Upload the file
const uploadTask = this.afStorage.upload(`${pageName}/${timeStamp}-${upload.file.name}`, upload.file);
// Observe percentage changes
this.uploadPercentObservable = uploadTask.percentageChanges();
this.uploadPercentageSubscription$ = this.uploadPercentObservable.subscribe(
eachValue => {
this.uploadPercent = Math.round(eachValue*10) / 10
},
err => {
console.log('uploadPercentageSubscription$ errored out in upload.service.ts, here is the err:')
console.log(err)
},
() => {
console.log('uploadPercentageSubscription$ completed')
}
)
// Get notified when the download URL is available, return it from the function
uploadTask.snapshotChanges().pipe( finalize( () => {
this.downloadURLObservable = this.afStorage.ref(`${pageName}/${timeStamp}-${upload.file.name}`).getDownloadURL()
this.downloadURLSubscription$ = this.downloadURLObservable.subscribe(
eachValue => {
resolve(eachValue)
},
err => {
console.log('downloadURLSubscription$ errored out in upload.service..ts, here is the err:')
console.log(err)
},
() => {
console.log('downloadURLSubscription$ completed')
}
)
})).subscribe()
}); // End of returned promise
} // End of pushUpload() for regular image
输入某个网址url,可以提取对应网页的所有图片,并以缩略图展示出来,点击缩略图可查看原图。 [Code4App.com]
本文向大家介绍HTML5 JS压缩图片并获取图片BASE64编码上传,包括了HTML5 JS压缩图片并获取图片BASE64编码上传的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了HTML5 JS压缩图片,并获取图片BASE64编码上传的方法,供大家参考,具体内容如下 基本过程 1) 调用 FileReader 的 reader.readAsDataURL(img); 方法, 在其on
本文向大家介绍Android编程简单获取网络上的图片,包括了Android编程简单获取网络上的图片的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程简单获取网络上的图片的方法。分享给大家供大家参考,具体如下: 要获取网络上的图片,首先得有网络的访问权限,这个不再写了,以前的文章中写过,还有布局方式不再写了,就是写也是一个简单的布局,没有多大意义,直接上核心代码: 这是本人使
问题内容: 我有一个带有一些图像的常规HTML页面(只是常规HTML标签)。我想获取他们的内容,最好以base64编码,而无需重新下载图像(即浏览器已经加载了该图像,所以现在我想要的内容)。 我很乐意使用Greasemonkey和Firefox实现这一目标。 问题答案: 注意: 仅当图像与页面来自同一域或具有属性并且服务器支持CORS时,此方法才有效。它也不会给您原始文件,而是一个重新编码的版本。
上传证件照片。支持 jpeg、jpg、bmp、png 格式,图片大小不超过2M。 // $path string 图片路径 $response = $app->media->upload($path);
我是的新手。我想知道是否可以下载所有手动上传的图片?我搜索了这个主题,但我发现,我需要图像并将其保存在中,但在这种情况下,如果我以编程方式上传它。还有别的办法吗?因为我想手动上传。