b/s下能使用jFileChooser?

luxiangrong123 2012-04-19 07:03:20
我的在b/s结果下使用了这个。编写代码的时候,本机既充当服务器。又充当客户机,现在我把项目部署在服务器上。自己电脑测试。点击下载按钮。都在服务器的的界面上弹出保存对话框了。。。急急急。。。
...全文
121 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
computerclass 2012-04-19
  • 打赏
  • 举报
回复
这个是浏览器自己找路径的,或者有历史位置
luxiangrong123 2012-04-19
  • 打赏
  • 举报
回复
....我下载页面上就一个下载超链接跳到Action中,得到下载图片的网络地址,下载功能是保存到本地。我怎么给用户选择保存的路径。。。这个是我所困惑的。JFileChooser已经实现。当时b/s结构不支持。。。
tommore 2012-04-19
  • 打赏
  • 举报
回复

  public static void test3() throws IOException {

  URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");

  //返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。

  URLConnection uc = url.openConnection();

  //打开的连接读取的输入流。

  InputStream in = uc.getInputStream();

  int c;

  while ((c = in.read()) != -1)

  System.out.print(c);

  in.close();

  }

你应该是这个意思吧。
asia_deng 2012-04-19
  • 打赏
  • 举报
回复
百度一下 jsp文件下载
luxiangrong123 2012-04-19
  • 打赏
  • 举报
回复
这个是在Action中。急。。。JFileChooser是正对c/s结果的。。。我的是b/s现在怎么挽救。。。
luxiangrong123 2012-04-19
  • 打赏
  • 举报
回复
是下载。。。我点击按钮,下载(图片、视频、录音这个不用管)现在怎么决绝啊
System.out.println(url);//这个地址就是http:192.168.3.114:8083/spel/a.doc
JFileChooser file = ExcelUtil.getFile();
if (file != null) {
//的到保存路径
String fpath=file.getSelectedFile().getAbsolutePath()+"."+lawmsg.getFileType();
//创建文件
// 声明抛出所有例外
URL tirc = new URL(url);
// 构建一URL对象
InputStream is = tirc.openStream();
FileOutputStream fos = new FileOutputStream(fpath);
byte[] buffer = new byte[1024];
int len = is.read(buffer);
while (len != -1) {
fos.write(buffer, 0, len);
len = is.read(buffer);
}
fos.close();
is.close();
asia_deng 2012-04-19
  • 打赏
  • 举报
回复
#2楼说得对,下载是浏览器的事
楼主是想到文件上传了吧
luxiangrong123 2012-04-19
  • 打赏
  • 举报
回复
我目前要点击下载按钮,下载视频到本地。可是我想你这样说的测试了一下。jsp中<a>标签,好像只是支持exe,xls,doc,不支持wav,跟avi。。。急啊。。。我用JFileChooser本地测试正常。放到服务器上,在我的电脑上点击下载按钮都在服务器上弹出保存按钮了。。。急啊。。怎么决绝
tommore 2012-04-19
  • 打赏
  • 举报
回复
哈哈,
不是这样做的,你只要是一个<a href="http://..../fileName.doc">下载</a>就可以了。其它都是浏览器的事儿了。它会自动让人先保存位置的。
龙四 2012-04-19
  • 打赏
  • 举报
回复
不行。。
public class WebBrowser extends JFrame implements HyperlinkListener,ActionListener{ //建立工具栏用来显示地址栏 JToolBar bar=new JToolBar (); //建立网页显示界面 JTextField jurl = new JTextField (60); JEditorPane jEditorPane1 = new JEditorPane (); JScrollPane scrollPane = new JScrollPane (jEditorPane1); JFileChooser chooser=new JFileChooser (); JFileChooser chooser1=new JFileChooser (); String htmlSource; JWindow window = new JWindow (WebBrowser.this); JButton button2=new JButton ("窗口还原"); Toolkit toolkit = Toolkit.getDefaultToolkit(); //建立菜单栏 JMenuBar jMenuBar1 = new JMenuBar(); //建立菜单组 JMenu fileMenu = new JMenu ("文件(F)"); //建立菜单项 JMenuItem saveAsItem = new JMenuItem ("另存为(A)..."); JMenuItem exitItem=new JMenuItem ("退出(I)"); JMenu editMenu=new JMenu ("编辑(E)"); JMenuItem backItem=new JMenuItem ("后退"); JMenuItem forwardItem=new JMenuItem ("前进"); JMenu viewMenu=new JMenu ("视图(V)"); JMenuItem fullscreenItem=new JMenuItem ("全屏(U)"); JMenuItem sourceItem=new JMenuItem ("查看源码(C)"); JMenuItem reloadItem=new JMenuItem ("刷新(R)"); //建立工具栏 JToolBar toolBar = new JToolBar(); //建立工具栏中的按钮组件 JButton picSave = new JButton("另存为"); JButton picBack = new JButton("后退"); JButton picForward = new JButton("前进"); JButton picView = new JButton("查看源代码"); JButton picExit = new JButton("退出"); JLabel label=new JLabel ("地址"); JButton button=new JButton ("转向"); Box adress=Box.createHorizontalBox (); //ArrayList对象,用来存放历史地址 private ArrayList history=new ArrayList(); //整型变量,表示历史地址的访问顺序 private int historyIndex; /** **构造函数 **初始化图形用户界面 */ public WebBrowser(){ setTitle ("网页浏览器"); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //为jEditorPane1添加事件侦听 jEditorPane1.addHyperlinkListener (this); //为组件fileMenu设置热键‘F’ fileMenu.setMnemonic('F'); saveAsItem.setMnemonic ('S'); //为“另存为”组件设置快捷键为ctrl+s saveAsItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK)); exitItem.setMnemonic('Q'); exitItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_E,InputEvent.CTRL_MASK)); //将菜单项saveAsItem加入到菜单组fileMenu中 fileMenu.add (saveAsItem); //在菜单项中添加隔离 fileMenu.addSeparator (); fileMenu.add (exitItem); backItem.setMnemonic ('B'); backItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_Z,InputEvent.CTRL_MASK)); forwardItem.setMnemonic('D'); forwardItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK)); editMenu.setMnemonic('E'); editMenu.add (backItem); editMenu.add (forwardItem); viewMenu.setMnemonic('V'); fullscreenItem.setMnemonic('U'); fullscreenItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_U,InputEvent.CTRL_MASK)); sourceItem.setMnemonic('C'); sourceItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_C,InputEvent.CTRL_MASK)); reloadItem.setMnemonic('R'); reloadItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_R,InputEvent.CTRL_MASK)); Container contentPane=getContentPane (); //设置大小 scrollPane.setPreferredSize(new Dimension(100,500)); contentPane.add (scrollPane, BorderLayout.SOUTH); //在工具栏中添加按钮组件 toolBar.add(picSave); toolBar.addSeparator(); toolBar.add(picBack); toolBar.add(picForward); toolBar.addSeparator(); toolBar.add(picView); toolBar.addSeparator(); toolBar.add(picExit); contentPane.add (bar,BorderLayout.CENTER); contentPane.add(toolBar,BorderLayout.NORTH); viewMenu.add (fullscreenItem); viewMenu.add (sourceItem); viewMenu.addSeparator (); viewMenu.add (reloadItem); jMenuBar1.add (fileMenu); jMenuBar1.add (editMenu); jMenuBar1.add (viewMenu); setJMenuBar (jMenuBar1); adress.add (label); adress.add (jurl); adress.add (button); bar.add (adress); //为组件添加事件监听 saveAsItem.addActionListener(this); picSave.addActionListener(this); exitItem.addActionListener(this); picExit.addActionListener(this); backItem.addActionListener(this); picBack.addActionListener(this); forwardItem.addActionListener(this); picForward.addActionListener(this); fullscreenItem.addActionListener(this); sourceItem.addActionListener(this); picView.addActionListener(this); reloadItem.addActionListener(this); button.addActionListener(this); jurl.addActionListener(this); }
服务器与客户端应用 package test; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.*; import java.net.ServerSocket; import java.net.Socket; import javax.swing.*; public class EchoServerTest extends JFrame implements Runnable{ JTextArea textArea; JTextArea textArea1; ServerSocket serverSocket; Socket socket; SenderButton sender; JButton button1; JButton button2; JButton button3; JScrollPane jScrollPane1; JPanel panel1; JPanel panel2; public EchoServerTest(){ super("服务器窗口"); this.setJMenuBar(createMenuBar()); button1=new JButton("发送"); button2=new JButton("保存"); button3=new JButton("退出"); jScrollPane1=new JScrollPane(); textArea=new JTextArea(5,20); textArea1=new JTextArea(1,20); textArea.setEditable(false); textArea.setForeground(Color.pink); jScrollPane1.add(textArea); jScrollPane1.setViewportView(textArea); panel1=new JPanel(new FlowLayout()); panel1.add(button1); panel1.add(button2); panel1.add(button3); panel2=new JPanel(new BorderLayout()); panel2.add("Center",textArea1); panel2.add("South",panel1); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add("Center",jScrollPane1); this.getContentPane().add("South",panel2); this.setVisible(true); this.pack(); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { sender.GetString(textArea1.getText()); textArea.append("EchoServerTest:"+textArea1.getText()+"\n"); textArea1.setText(null); } }); button2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { try { JFileChooser fileChooser=new JFileChooser("C:\\"); fileChooser.setDialogTitle("请选择您要保存的路径"); if(fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){ File file=fileChooser.getSelectedFile(); } BufferedWriter b=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileChooser.getSelectedFile(),true))); b.write(textArea.getText()); b.flush(); b.close(); } catch (Exception e1) { e1.printStackTrace(); } } }); button3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.exit(0); } }); Thread thread=new Thread(this); thread.start(); } public JMenuBar createMenuBar() { JMenuBar menuBar; JMenu menu, submenu; JMenuItem menuItem; JRadioButtonMenuItem rbMenuItem; JCheckBoxMenuItem cbMenuItem; menuBar = new JMenuBar(); menu = new JMenu("文件(F)"); menu.setMnemonic(KeyEvent.VK_F); menuBar.add(menu); submenu = new JMenu("新建(N)"); submenu.setMnemonic(KeyEvent.VK_N); menuItem = new JMenuItem("新建文件(D)"); submenu.add(menuItem); menuItem = new JMenuItem("复制当前页(C)"); submenu.add(menuItem); menu.add(submenu); menu.addSeparator(); menuItem = new JMenuItem("退出(x)"); menu.add(menuItem); menu = new JMenu("查看(V)"); menu.setMnemonic(KeyEvent.VK_V); menuBar.add(menu); submenu = new JMenu("工具栏"); cbMenuItem = new JCheckBoxMenuItem("菜单栏(M)"); cbMenuItem.setMnemonic(KeyEvent.VK_M); submenu.add(cbMenuItem); cbMenuItem = new JCheckBoxMenuItem("地址栏(A)"); cbMenuItem.setMnemonic(KeyEvent.VK_A); submenu.add(cbMenuItem); cbMenuItem = new JCheckBoxMenuItem("搜索栏(S)"); cbMenuItem.setMnemonic(KeyEvent.VK_S); submenu.add(cbMenuItem); menu.add(submenu); menu.addSeparator(); submenu=new JMenu("文字大小(X)"); submenu.setMnemonic(KeyEvent.VK_X); ButtonGroup group = new ButtonGroup(); rbMenuItem = new JRadioButtonMenuItem("大(L)"); rbMenuItem.setSelected(true); rbMenuItem.setMnemonic(KeyEvent.VK_L); group.add(rbMenuItem); submenu.add(rbMenuItem); rbMenuItem = new JRadioButtonMenuItem("中(M)"); rbMenuItem.setMnemonic(KeyEvent.VK_M); group.add(rbMenuItem); submenu.add(rbMenuItem); rbMenuItem = new JRadioButtonMenuItem("小(S)"); rbMenuItem.setMnemonic(KeyEvent.VK_S); group.add(rbMenuItem); submenu.add(rbMenuItem); menu.add(submenu); return menuBar; } public void run() { try { textArea.append(" 等待客户端连接"+"\n"); serverSocket = new ServerSocket(7658); socket=serverSocket.accept(); textArea.append("连接成功"+"\n"); BufferedReader in=new BufferedReader( new InputStreamReader(socket.getInputStream())); PrintWriter out=new PrintWriter( new OutputStreamWriter(socket.getOutputStream())); sender=new SenderButton(out); boolean done=false; while(true){ String str=in.readLine(); textArea.append("Client:"+str+"\n"); } } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { EchoServerTest test=new EchoServerTest(); } }

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧