可以上传txt,但是无法上传图片,这是哪的问题呢?

来源:6-2 综合练习---实现分析

夜还没黑

2016-08-27 17:19

fileService类中
//添加文件
	public boolean addFile(File f){
		try {
			String sql="insert into socket_file(fname,fcontent) value(?,?)";
			conn=DBUtil.getconnection();
			PreparedStatement ps=conn.prepareStatement(sql);
			ps.setString(1, f.getFname());
			ps.setBytes(2, f.getFcontent());
			ps.executeUpdate();
			return true;
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
	}
socketClient类中
	//文件上传
	public void showAddfile(){
		System.out.println("请输入要上传的文件的觉得路径(如:e:/imooc/dog.jpg):");
		File file=new File();
		String path=input.next();
		CommandTansfer transfer=new CommandTansfer();
		FileInputStream fis=null;
		BufferedInputStream bis=null;
		java.io.File fileInfo=new java.io.File(path);
		if(fileInfo.exists()&&fileInfo.isFile()){
			file.setFname(fileInfo.getName());
			transfer.setCmd("addFile");
			try {
				fis=new FileInputStream(fileInfo);
				byte[] fcontent=new byte[fis.available()];
				bis=new BufferedInputStream(fis);
				bis.read(fcontent);
				file.setFcontent(fcontent);
				transfer.setData(file);
				//与服务器进行通信
				socket=new Socket("127.0.0.1", 8858);
				sendData(transfer);
				//接收服务器数据
				CommandTansfer result=getData();
				if(result.isFlag()){
					System.out.println("********上传文件成功********");
				}else{
					System.out.println("********上传文件失败********");
				}
				fis.close();
				bis.close();
			}catch (Exception e) {
			e.printStackTrace();
			}
		}
	}
	
	//向服务器发送数据
	private void sendData(CommandTansfer transfer){
		OutputStream out;
		try {
			out = socket.getOutputStream();
			ObjectOutputStream oos=new ObjectOutputStream(out);
			oos.writeObject(transfer);
			oos.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	//接收服务器的数据
	private CommandTansfer getData(){
		CommandTansfer result=null;
		try {
			ObjectInputStream ois=new ObjectInputStream(
					socket.getInputStream());
			result=(CommandTansfer)ois.readObject();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
		return result;
	}


写回答 关注

1回答

  • qq_哦破哦破_0
    2016-09-01 19:26:02

    数据库中存储上传文件内容的类型应为为blob

Java Socket应用---通信是这样练成的

分享的是 Java 中的网络编程,使用Socket实现网络聊天通信

125013 学习 · 590 问题

查看课程

相似问题