如何从Android中的给定网址下载并保存图像?
我正在尝试从 S3 下载 .jpg 和 .pdf 图像,其具有以下设置
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
按照类似于(How do I download a file with Angular2)的方法,在 Firefox 中一切正常。在 Chrome 中,PDF 下载工作正常,但当我尝试下载图像时,总是收到 GET 请求的典型 CORS 错误。
downloadFile(url, type, fileName) {
this.http.getFile(url, { responseType: 'blob' }).
subscribe(data => this.downloadFileComplete(data, type, fileName));
}
downloadFileComplete(data: any, type: string, fileName: string) {
let fileType = (type === 'IMAGE') ? 'image/jpeg' : 'application/pdf';
var blob = new Blob([data], { type: fileType.toString() });
if (type …
Run Code Online (Sandbox Code Playgroud) 我试图通过scrapy下载图像.这是我的不同文件:
items.py
class DmozItem(Item):
title = Field()
image_urls = Field()
images = Field()
Run Code Online (Sandbox Code Playgroud)
settings.py
BOT_NAME = 'tutorial'
SPIDER_MODULES = ['tutorial.spiders']
NEWSPIDER_MODULE = 'tutorial.spiders'
ITEM_PIPELINES = ['scrapy.contrib.pipeline.images.ImagesPipeline']
IMAGES= '/home/mayank/Desktop/sc/tutorial/tutorial'
Run Code Online (Sandbox Code Playgroud)
蜘蛛
class DmozSpider(BaseSpider):
name = "wikipedia"
allowed_domains = ["wikipedia.org"]
start_urls = [
"http://en.wikipedia.org/wiki/Pune"
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
items = []
images=hxs.select('//a[@class="image"]')
for image in images:
item = DmozItem()
link=image.select('@href').extract()[0]
link = 'http://en.wikipedia.com'+link
item['image_urls']=link
items.append(item)
Run Code Online (Sandbox Code Playgroud)
尽管所有这些设置,我的管道没有被激活.请帮助.我是这个框架的新手.
在iphone应用程序中,我有一个webview,我想要预览从互联网下载的一些图像,我的问题是一些图像不被视为适合webview的框架,但大多数情况下.我认为这是因为这些图像太大了.难道我做错了什么?请帮忙
我想要的只是在webview中加载图像以适应webview的框架.您可以提供一些其他代码,但需要关注webview而不是imageview.
这是我正在使用的代码.
self.documentData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.folio3.com/corp/wp-content/uploads/2013/02/Entrance_A-3.jpg"]];
self.webView.scalesPageToFit = YES;
[self.webView loadData:self.documentData MIMEType:@"image/jpeg" textEncodingName:@"utf-8" baseURL:nil];
Run Code Online (Sandbox Code Playgroud)
另外这里是输出的屏幕截图(清楚地显示滚动指示器,即图像不适合webview的框架)
我是一个Android应用程序的原型,需要从Web服务器获取图像到Android ListView.我理解android方面的东西(虽然我还没有实现和测试)通过这个线程懒惰加载ListView中的图像
我需要PHP /服务器端的帮助.需要在列表视图中填充的特定图像将动态决定(具有给定标记的图像).我是Web应用程序的新手,但已设法建立一个可以运行PHP脚本的Web服务器.
1)Android决定要检索哪些标签.建立HTTP连接并使用给定标记作为参数调用PHP脚本.
2)PHP脚本在标签的MySQL数据库中查找,决定要上传的图像的ID,这些图像存储在文件夹中.
3)[这里我不清楚如何实现] PHP发送这些图像,然后是与每个图像相关联的元数据.要发送的记录数不会事先修复,而是由MySQL返回的记录数决定(只有最大值才能修复).
我非常感谢任何示例脚本,以及指向哪里可以找到更多信息以更好地理解内部工作的指针.此外,如果有更好的框架来做我想做的事情,我很高兴了解到这一点(我没有嫁给PHP/MySQL).
我的应用程序当启动屏幕启动时,我只是点击一个URL并获取一个XML文件.从该XML文件我解析出用户名,ID和URL等数据以下载图像.从那个网址我想下载一个图像,我想在我的应用程序本身中以特定的名称存储图像.我想在另一个活动中使用相同的图像作为背景.如何在我的应用程序中下载和存储图像.哪里可以存储在我的应用程序中,无论是在原始文件夹中还是在drawable中.
在存储名称之前,如何将图像设置为特定活动中的背景图像,请帮助我的朋友
我正在尝试创建一个用于从服务器下载图像并将其显示到listview的应用程序.我做的问题是内存泄漏并使我的应用程序崩溃.我在Android博客中搜索此链接,它显示了一个好主意,但仍然不足以用多个线程来做.android的某些设备可以使用它,但有些设备只能在单个线程中处理,有时它根本无法工作.
我的应用程序有很多活动,每个活动都有一个Listview,需要尽快显示图像.通过Google IO 2012,他们使用缓冲区将原始图像保存到SD卡,它解决了泄漏内存的问题,但由于需要下载的图像太大,导致加载速度变慢.
我的问题是:有没有办法将图像与写入SD卡一起缩放? 我想出一些可能的解决方案是在输入流对象中使用跳过字节,我能够找到我需要下载的图像的每像素宽度和高度.
以下代码在Google IO 2012中使用,它适用于多线程,在我的情况下,我有4个线程在后台运行.
private void downloadAndWriteFile(final String url, final File file) throws OutOfMemoryError {
BufferedOutputStream out = null;
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setDoInput(true);
conn.connect();
final InputStream in = new BufferedInputStream(conn.getInputStream(), IO_BUFFER_SIZE_BYTES); // buffer size 1KB
out = new BufferedOutputStream(new FileOutputStream(file), IO_BUFFER_SIZE_BYTES);
int b;
while ((b = in.read()) != -1) {
out.write(b);
}
out.close();
conn.disconnect();
}
catch (Exception e) {
Log.e(TAG, "!!downloadAndWriteFile " + e.getMessage());
file.delete();
}
}
Run Code Online (Sandbox Code Playgroud) 处理我们捕获图像并通过服务器上传的应用程序.应用程序在 Android和I Phone中.当我们从Android发布图像时,它们的数量是Kilo Bytes但是当我们从I Phone发布图像时它们是MB大小.
当我们在IPHONE 5上使用URL在浏览器上发布图像时,它们看起来很好,但是当我们在Android设备中下载该图像并在图像视图中显示时,它们会向左侧倾斜90度.
在Android或I Phone中下载图像后,我没有使用任何旋转代码.
在I Phone中,图像看起来很好.
从Android捕获的图像也是可见的.从I Phone中捕获的低分辨率图像也可以直接在Android中看到.
从Android上传的图片:
https://s3.amazonaws.com/WeddingApp/Weddingimage/933_6_stan.jpg
Run Code Online (Sandbox Code Playgroud)
从I Phone上传的图片:
https://s3.amazonaws.com/WeddingApp/Weddingimage/937_6_stan.jpg
public static boolean downloadFile(final String fileURL,File directory,Context CONTEXT){
try{
URL url = new URL(fileURL);
URLConnection ucon = url.openConnection();
ucon.setReadTimeout(35000);
ucon.setConnectTimeout(10000);
InputStream is = ucon.getInputStream();
BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);
File file = directory;
if (file.exists())
{
file.delete();
}
file.createNewFile();
FileOutputStream outStream = new FileOutputStream(file);
byte[] buff = new byte[5 * 1024];
int len;
while ((len = inStream.read(buff)) != …
Run Code Online (Sandbox Code Playgroud) 我必须使用DownloadManager存储从url下载的图像,并将其存储到sdcard中,并带有我自己的目录,例如“ xyz”。这是我的代码
File img_directory = null;
img_directory = new File(Environment.getExternalStorageDirectory() + "/xyz");
if (!img_directory.exists()) {
img_directory.mkdirs();
DownloadManager mgr = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
Uri downloadUri = Uri.parse("my image url");
DownloadManager.Request request = new DownloadManager.Request(downloadUri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(true)
.setTitle("Demo")
.setDescription("Something useful. No, really.")
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
.setDestinationInExternalPublicDir(Environment.getExternalStorageDirectory().getAbsolutePath() + "/xyz", image.jpeg);
mgr.enqueue(request);
}
Run Code Online (Sandbox Code Playgroud)
此代码将在Android 5.1.1上运行。当我在6.0中运行相同的代码时,会引发如下错误
Caused by: java.lang.IllegalStateException: Unable to create directory: /storage/emulated/0/storage/emulated/0/xyz at android.app.DownloadManager$Request.setDestinationInExternalPublicDir(DownloadManager.java:538)
Run Code Online (Sandbox Code Playgroud)
我已在清单文件中添加了“读取”和“写入”权限。如何解决此错误?有谁能帮助我?提前致谢。
android android-sdcard imagedownload android-download-manager
嗨,我是新手angularjs
,我在stackoverflow上看到了很多关于此的问题,但未能找到一个好的解决方案.
<button ng-click="download()">download</button>
Run Code Online (Sandbox Code Playgroud)
我的要求是(1)我不想使用<a>
标签
(2)我不想使用<download>
属性,因为它应该在所有浏览器中都受支持.
当用户单击下载按钮时,图像应下载到客户端的本地计算机.
假设图像来自某个网址
<script>
angular.module('myApp', []);
angular.module('myApp').controller('HomeCtrl', ['$scope', '$http', function($scope, $http) {
$scope.download=function()
{
$http.get(url).success(function(data){
// code to download image here
}).error(function(err, status){})
}
}]);
</script>
Run Code Online (Sandbox Code Playgroud)