如何用jsp将我本地的文件(用组件选择的)上传到我指定的FTP服务器?

alianasia 2005-09-01 03:00:01
如题 ,即类似于FTP工具,可是我用了网上的ftpUpload代码,它只能将我Web 服务器上的文件传过去,而我用file组件选择了本地文件后却无法上传,原因是ftp的代码是在服务器上执行的,而不能得到客户端文件,请问如何解决?
...全文
522 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
swfclyb 2005-10-15
  • 打赏
  • 举报
回复
大文件上传有好方法吗?上传到WEB服务器或FTP服务器有几G的文件
alianasia 2005-09-06
  • 打赏
  • 举报
回复
哎,关键是我的Web服务器不支持http上传了,被禁掉了.
gaochao79 2005-09-02
  • 打赏
  • 举报
回复
楼主已经很清楚了!
Yanbin_Q 2005-09-02
  • 打赏
  • 举报
回复
jsp和你的web服务器只能http协议传过去
如果用applet写ftp传到一个ftp服务器,需要安全认证才行

所以http到web服务器,然后再ftp到ftp服务器有什么不好,你可以不在web服务器上生成临时文件,直接把http文件流写到ftp服务器上
kingofworl 2005-09-02
  • 打赏
  • 举报
回复
顶一下
shenpipi 2005-09-02
  • 打赏
  • 举报
回复
ftp服务器和web服务器不能共享一个存储吗?这样你放在ftp上和web服务器上都是一样的了
alianasia 2005-09-02
  • 打赏
  • 举报
回复
顶,
alianasia 2005-09-02
  • 打赏
  • 举报
回复
顶上去,大家帮顶一下,顶者有分.

有没有人用Applet实现过?
alianasia 2005-09-01
  • 打赏
  • 举报
回复
我也是这样想的,似乎文件只能先用http上传到web服务器,然后再用ftpClient将上传到web服务器上的那个文件FTP到FTP Server..

可这样实在太麻烦了.

不知道这样做对不对,还有没有其它好的办法.请高手们指点一下.或者给个例子看看.
package ftp; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import java.io.FileInputStream; import java.io.IOException; import sun.net.TelnetOutputStream; import sun.net.ftp.FtpClient; public class MainCtrl extends HttpServlet { private FtpClient ftpClient; public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html; charset=UTF-8"); try { //连接ftp服务器 connectServer("10.10.1.2", "zz3z2008", "zz3z2008", "upftp"); //上传文件;并返回上传文件的信息 req.setAttribute("inf", upload(req.getParameter("file_name"))); } catch (Exception e) { System.out.println(e.toString()); req.setAttribute("inf", e.toString()); req.getRequestDispatcher("view_inf.jsp").forward(req, resp); return; } finally { if (ftpClient != null) { ftpClient.closeServer(); } } req.getRequestDispatcher("view_inf.jsp").forward(req, resp); } public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } //连接ftp服务器 private void connectServer(String server, String user, String password, String path) throws IOException { // server:FTP服务器的IP地址;user:登录FTP服务器的用户名 // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径 ftpClient = new FtpClient(); ftpClient.openServer(server); ftpClient.login(user, password); //path是ftp服务下主目录的子目录 if (path.length() != 0) ftpClient.cd(path); //用2进制上传 ftpClient.binary(); } //上传文件;并返回上传文件的信息 private String upload(String filename) throws Exception { TelnetOutputStream os = null; FileInputStream is = null; try { //"upftpfile"用ftp上传后的新文件名 //os = ftpClient.put("upftpfile"); os = ftpClient.put("MainCtrl.zip"); java.io.File file_in = new java.io.File(filename); if (file_in.length()==0) { return "上传文件为空!"; } is = new FileInputStream(file_in); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } } finally { if (is != null) { is.close(); } if (os != null) { os.close(); } } return "上传文件成功!"; } } 文件2:upftp.htm(前台操作页面)内容如下:
<input name="file_name" size="38" type="text" value="C:\\java\\MainCtrl.zip" /> <input type="submit" />

81,122

社区成员

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

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