我正在尝试找到一种方法,将不同文件类型的文件从服务器发送到客户端。
我在服务器上有以下代码将文件放入字节数组:
File file = new File(resourceLocation);
byte[] b = new byte[(int) file.length()];
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream(file);
try {
fileInputStream.read(b);
} catch (IOException ex) {
System.out.println("Error, Can't read from file");
}
for (int i = 0; i < b.length; i++) {
fileData += (char)b[i];
}
}
catch (FileNotFoundException e) {
System.out.println("Error, File Not Found.");
}
然后,我将fileData作为字符串发送给客户端。这对于txt文件效果很好,但是当涉及到图像时,我发现尽管它可以很好地创建包含数据的文件,但图像无法打开。
我不确定我是否正在按照正确的方式进行操作。谢谢您的帮助。
如果要读取/写入二进制数据,则应使用字节流(InputStream /
OutputStream)代替字符流,并尝试避免像示例中那样在字节和字符之间进行转换。
您可以使用以下类将字节从InputStream复制到OutputStream:
public class IoUtil {
private static final int bufferSize = 8192;
public static void copy(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[bufferSize];
int read;
while ((read = in.read(buffer, 0, bufferSize)) != -1) {
out.write(buffer, 0, read);
}
}
}
您没有提供太多与html" target="_blank">客户端连接的详细信息。这是一个最小的示例,显示了如何将一些字节流传输到Servlet的客户端。(您需要在响应中设置一些标头并适当地释放资源)。
public class FileServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Some code before
FileInputStream in = new FileInputStream(resourceLocation);
ServletOutputStream out = response.getOutputStream();
IoUtil.copy(in, out);
// Some code after
}
}
问题内容: 我正在尝试从服务器向客户端发送文件,即服务器请求的客户端。客户端指定中的文件,然后将其发送到服务器,服务器将文件大小添加到文件中,然后将其返回给客户端。 客户端向其管道添加具有正确文件大小的新文件。 服务器使用上下文和所需文件创建一个新文件,并尝试发送该文件,但是从不读取该字节。 我在这里做错了什么? 记录 客户 FileRequestHandler.java FileChunkReq
问题内容: 由于我是Web服务的新手,请您告诉我问题的答案。我的问题是 我想实现一个Web服务,当客户端调用此Web服务时,该服务会向客户端发送pdf文件。 请有人帮我提供一段不错的代码或解释。 现在可以请一个人解决我的错误。 12-23 09:42:48.429:调试/安装(32):DexInv:-开始’/data/app/vmdl33143.tmp’— 12-23 09:42:51.708:调
我正在创建我的产品,并与这个问题。有一天,我设置了Socket.io,一切都很好。第二天,我将服务器和客户端从http迁移到HTTPS。迁移后客户端和服务器端仍然连接,但不能从客户端发射到服务器,从服务器发射到客户端。 我的ssl证书位于和中,它们加载正确。运行在上的服务器 我的示例react组件。我的react应用程序运行在上。HTTPS连接良好,工作良好。 我该怎么办?也许我在中错误地使用了s
我有一个关于Java插座的技术问题。 例如,假设我有一个Java Sockets服务器和n个多个客户端。是否可以几乎实时地将数据从服务器发送到任何或所有客户端? 更准确地说: 有哪种监听器可以在Sockets客户端中实现 有人能告诉我什么方法是最好的吗?此外,如果有人有一个代码示例,我也会很高兴。 谢谢
我试图实现一个tcp客户端,它将使用spring Integration连接到现有的服务器。对于这项技术还是新手,我已经在https://github.com/spring-projects/spring-integration-samples上学习了spring示例。 主要方法: 如何强制此客户端连接到我的服务器,即使我不想发送数据?
问题内容: 我想将一些文件上传到HTTP服务器。基本上,我需要的是对服务器的某种POST请求,其中包含一些参数和文件。我看到了仅上传文件的示例,但没有找到如何也传递其他参数的示例。 什么是最简单,免费的解决方案?有人有我可以学习的文件上传示例吗?我已经搜寻了几个小时,但是(也许只是那几天)找不到我真正需要的东西。最好的解决方案是不涉及任何第三方类或库的东西。 问题答案: 通常,你会用来触发HTTP