java代码从服务器下载图像到客户端

标签 java image download

我是java新手。我对此了解不多。我刚学java。 我正在开发一个网络应用程序。其中我有一个选项下载图像。如果用户单击,他应该能够从服务器下载图像到客户端(例如位置 c://)。

我已经实现了这段代码::

import java.awt.Image;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;




public class DownloadingImages{
    public DownloadingImages() {}

public void download(String name) throws MalformedURLException, IOException{

Image image = null;
try {
    //URL url = new URL("file:///E:/myproject/build/web/images/Webcam.jpg");

 String  spath="http://localhost:5051/marketpoint/images/";

 String cpath="C:\\";


 spath = spath + name ;
 cpath = cpath + name ;
 System.out.println("FULL path::: "+spath);



 URL url = new URL(spath);




 InputStream in = new BufferedInputStream(url.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while (-1!=(n=in.read(buf)))
{
   out.write(buf, 0, n);
}
out.close();
in.close();
byte[] response = out.toByteArray();
 FileOutputStream fos = new FileOutputStream(cpath);
    fos.write(response);
    fos.close();  
} catch (IOException e) {


}
}
}


Here
name = name of image thta client wants to download.

这里的问题是图像被下载到服务器端。在 c://。谁能告诉我哪里错了。

为此,我使用 net beans 作为编辑器,Apache tomcat 作为服务器。客户端和服务器都通过5051端口连接。客户端要从服务器下载的图像是简单的jpg图像。有人会帮助我摆脱这个问题吗?

最佳答案

如果文件下载到 C:\,那么当您打开 FileOutputStream 时,这就是您的 cpath 变量。这意味着您的 name 变量将作为空字符串传入。尝试放入一些日志语句(或者更好的是,使用 netbeans 调试器!)来查看代码执行时变量保存的值。

编辑:我想我现在明白了这个问题。您将其作为 servlet 或类似的东西运行。这意味着您的代码在服务器上执行,而不是在客户端上执行。如果您想将文件下载到客户端上的特定路径,则必须使用 Applet 或在客户端运行的类似工具。或者,您可以在 HTTP 响应中返回文件,用户的浏览器将询问他们保存文件的位置。不过,此时用户可以自己在浏览器中导航到 jpg。

如果这不能回答您的问题,您可能需要更详细地解释您的用例。

关于java代码从服务器下载图像到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157501/

相关文章:

java - 使用 TextureView 缩放 Camera2 预览

css - 无法让 Firefox 或 IE 遵守最大高度,而 Chrome 和 Safari 可以

java - 是否有任何初学者机器学习挑战集?

java - 从第二个窗口切换到第三个窗口时如何通过selenium webdriver处理多个窗口

css - img src SVG 使用 CSS 改变样式

java - 在 Clojure 中使用重定向到 http ://foobar. mp3 的 http ://fizzbar. mp3

java - 使用多线程下载真的会加快速度吗?

java - 在 Android 中解析 double 时出错

java - 如何对java main方法进行单元测试?

python - Selenium 网络驱动程序 : How to Download a PDF File with Python?