我现在要将B上文件上传到A机器上. 这个怎么搞呢?(除FTP)
我查了不少资料. 看了以后 都是说上传功能 可是 没看到它要传到哪儿或者说没讲传到服务器上.
13 个解决方案
#1
能不能上传也要看人家是不是支持你上传,都能上传的话,病毒不是无处不在了?
#2
我只对我这个功能说
别太钻牛角尖
我现在就是要做 把一个模块(打包后) 上传 到服务器指定目录下. 这个目录我到时候要写在程序里.就是写死了
. 就象 我上传个东西到新浪 上一样. 类似邮件附件一样 上传
别太钻牛角尖
我现在就是要做 把一个模块(打包后) 上传 到服务器指定目录下. 这个目录我到时候要写在程序里.就是写死了
. 就象 我上传个东西到新浪 上一样. 类似邮件附件一样 上传
#3
还是用JAVA实现FTP客户端吧,比较简单方便
如果你非得要那么做,你得在服务器上实现邮件服务器,外端实际就是要些个邮件的客户端
如果你非得要那么做,你得在服务器上实现邮件服务器,外端实际就是要些个邮件的客户端
#4
这个问题你不能只站在 B 这边想。主要还是得站在 A 这边看看能提供什么样的上传方式,B 这边才好配合 A 这边进行操作。
如果 A 只提供一个 FTP 服务器,那 B 也只能实现一个 FTP 客户端,把文件上传过去。
如果 A 能提供一个 WEB 服务器,而且里面有一个 URL 能接收 POST 过来的文件,那你在 B 上边就可以做个 HTTP 客户端,把文件提交上去,或者,更常用的办法,由 A 再提供一个上载的页面。
如果你能在 A 上架设一个 SMTP 协议的文件接收器,那你就可以在 B 上用程序做个 SMTP 客户端,像发邮件一样把文件发送给 A。甚至直接用一个邮件客户端(比如 Outlook、Foxmail 什么的)发送文件。
……
你甚至可以在 A 和 B 上分别自己写一个 Socket 通信的程序,进行文件的传输(像飞鸽一样,hehe)
如果 A 只提供一个 FTP 服务器,那 B 也只能实现一个 FTP 客户端,把文件上传过去。
如果 A 能提供一个 WEB 服务器,而且里面有一个 URL 能接收 POST 过来的文件,那你在 B 上边就可以做个 HTTP 客户端,把文件提交上去,或者,更常用的办法,由 A 再提供一个上载的页面。
如果你能在 A 上架设一个 SMTP 协议的文件接收器,那你就可以在 B 上用程序做个 SMTP 客户端,像发邮件一样把文件发送给 A。甚至直接用一个邮件客户端(比如 Outlook、Foxmail 什么的)发送文件。
……
你甚至可以在 A 和 B 上分别自己写一个 Socket 通信的程序,进行文件的传输(像飞鸽一样,hehe)
#5
如果 A 能提供一个 WEB 服务器,而且里面有一个 URL 能接收 POST 过来的文件,那你在 B 上边就可以做个 HTTP 客户端,把文件提交上去,或者,更常用的办法,由 A 再提供一个上载的页面。
你说的这个方法 是我想要的!
我们做的一个产品 我做这个功能的目的就是 要对系统进行远程更新!
你说的这个方法 是我想要的!
我们做的一个产品 我做这个功能的目的就是 要对系统进行远程更新!
#6
自己的贴 顶起去 直到有满意的
#7
用AXIS2可以简单的实现,Webservice的aar放到服务器,客户端通过service提供的URL上传
#8
看的我都有些迷糊了,这个应该是A的问题啊,就是一个文件上传的处理
只要A提供上传功能,连网的任何一台机器都能上传到A上
还是我什么地方没理解到,好象大家解释的很复杂的样子
举个例子,比如struts
客户端用<html:file name="UploadForm" property="file" />将文件上传
服务器端用FormFile接收,然后io写到服务器磁盘指定位置上,上传就完成了
不知道你说的是不是这个,是的话给你发些代码
只要A提供上传功能,连网的任何一台机器都能上传到A上
还是我什么地方没理解到,好象大家解释的很复杂的样子
举个例子,比如struts
客户端用<html:file name="UploadForm" property="file" />将文件上传
服务器端用FormFile接收,然后io写到服务器磁盘指定位置上,上传就完成了
不知道你说的是不是这个,是的话给你发些代码
#9
LS 谢谢 看一下你的代码 xql80329@163.com
#10
顶
#11
前台就用我说的那个file标签提交就行了,下面是提交后向服务器指定位置写文件
public class Action extends BaseAction {
private static final String UPLOAD_PATH = "D:\\upload\\";
private static final int BUF_SIZE = 8192;
public ActionForward upload(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
final UploadForm bodyForm = (UploadForm) form;
final FormFile formFile = bodyForm.getFile();
if (formFile.getFileSize() > 0) {
boolean isUpload = uploadFile(formFile);
System.out.println("upload complate is " + isUpload);
}
return mapping.findForward(FORWARD_SHOW);
}
private boolean uploadFile(FormFile formFile) throws FileNotFoundException,
IOException {
// 如果目录不存在,创建目录
new File(UPLOAD_PATH).mkdirs();
final File uploadFile = new File(UPLOAD_PATH, formFile.getFileName());
// 如果文件已存在,将旧文件删除
uploadFile.delete();
final OutputStream outputStream = new FileOutputStream(uploadFile);
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
bufferedInputStream = new BufferedInputStream(formFile.getInputStream());
bufferedOutputStream = new BufferedOutputStream(outputStream);
final byte temp[] = new byte[BUF_SIZE];
int readBytes = 0;
while ((readBytes = bufferedInputStream.read(temp)) != -1) {
bufferedOutputStream.write(temp, 0, readBytes);
}
bufferedOutputStream.flush();
} finally {
if (bufferedOutputStream != null) {
bufferedOutputStream.close();
}
if (bufferedInputStream != null) {
bufferedInputStream.close();
}
formFile.destroy();
}
return true;
}
}
#12
方法有几种
1 利用80端口,可以采用
a) html upload, 用表单的形式。 此方法适合于用户自己亲自操作的情况。
b) URLConnection, 用A机器的程序实现,适合于2个机器都是服务器,需要服务器之间交换文件
c) Web Service, 实质还是表单形式,但能规范操作
2 利用其它端口
a) ftp 最简单,因为服务器端有现成的可用
b) 其它协议,基本需要自己书写客户端和服务器端,比较麻烦,比如RMI/Socket
1 利用80端口,可以采用
a) html upload, 用表单的形式。 此方法适合于用户自己亲自操作的情况。
b) URLConnection, 用A机器的程序实现,适合于2个机器都是服务器,需要服务器之间交换文件
c) Web Service, 实质还是表单形式,但能规范操作
2 利用其它端口
a) ftp 最简单,因为服务器端有现成的可用
b) 其它协议,基本需要自己书写客户端和服务器端,比较麻烦,比如RMI/Socket
#13
see see!attention!
#1
能不能上传也要看人家是不是支持你上传,都能上传的话,病毒不是无处不在了?
#2
我只对我这个功能说
别太钻牛角尖
我现在就是要做 把一个模块(打包后) 上传 到服务器指定目录下. 这个目录我到时候要写在程序里.就是写死了
. 就象 我上传个东西到新浪 上一样. 类似邮件附件一样 上传
别太钻牛角尖
我现在就是要做 把一个模块(打包后) 上传 到服务器指定目录下. 这个目录我到时候要写在程序里.就是写死了
. 就象 我上传个东西到新浪 上一样. 类似邮件附件一样 上传
#3
还是用JAVA实现FTP客户端吧,比较简单方便
如果你非得要那么做,你得在服务器上实现邮件服务器,外端实际就是要些个邮件的客户端
如果你非得要那么做,你得在服务器上实现邮件服务器,外端实际就是要些个邮件的客户端
#4
这个问题你不能只站在 B 这边想。主要还是得站在 A 这边看看能提供什么样的上传方式,B 这边才好配合 A 这边进行操作。
如果 A 只提供一个 FTP 服务器,那 B 也只能实现一个 FTP 客户端,把文件上传过去。
如果 A 能提供一个 WEB 服务器,而且里面有一个 URL 能接收 POST 过来的文件,那你在 B 上边就可以做个 HTTP 客户端,把文件提交上去,或者,更常用的办法,由 A 再提供一个上载的页面。
如果你能在 A 上架设一个 SMTP 协议的文件接收器,那你就可以在 B 上用程序做个 SMTP 客户端,像发邮件一样把文件发送给 A。甚至直接用一个邮件客户端(比如 Outlook、Foxmail 什么的)发送文件。
……
你甚至可以在 A 和 B 上分别自己写一个 Socket 通信的程序,进行文件的传输(像飞鸽一样,hehe)
如果 A 只提供一个 FTP 服务器,那 B 也只能实现一个 FTP 客户端,把文件上传过去。
如果 A 能提供一个 WEB 服务器,而且里面有一个 URL 能接收 POST 过来的文件,那你在 B 上边就可以做个 HTTP 客户端,把文件提交上去,或者,更常用的办法,由 A 再提供一个上载的页面。
如果你能在 A 上架设一个 SMTP 协议的文件接收器,那你就可以在 B 上用程序做个 SMTP 客户端,像发邮件一样把文件发送给 A。甚至直接用一个邮件客户端(比如 Outlook、Foxmail 什么的)发送文件。
……
你甚至可以在 A 和 B 上分别自己写一个 Socket 通信的程序,进行文件的传输(像飞鸽一样,hehe)
#5
如果 A 能提供一个 WEB 服务器,而且里面有一个 URL 能接收 POST 过来的文件,那你在 B 上边就可以做个 HTTP 客户端,把文件提交上去,或者,更常用的办法,由 A 再提供一个上载的页面。
你说的这个方法 是我想要的!
我们做的一个产品 我做这个功能的目的就是 要对系统进行远程更新!
你说的这个方法 是我想要的!
我们做的一个产品 我做这个功能的目的就是 要对系统进行远程更新!
#6
自己的贴 顶起去 直到有满意的
#7
用AXIS2可以简单的实现,Webservice的aar放到服务器,客户端通过service提供的URL上传
#8
看的我都有些迷糊了,这个应该是A的问题啊,就是一个文件上传的处理
只要A提供上传功能,连网的任何一台机器都能上传到A上
还是我什么地方没理解到,好象大家解释的很复杂的样子
举个例子,比如struts
客户端用<html:file name="UploadForm" property="file" />将文件上传
服务器端用FormFile接收,然后io写到服务器磁盘指定位置上,上传就完成了
不知道你说的是不是这个,是的话给你发些代码
只要A提供上传功能,连网的任何一台机器都能上传到A上
还是我什么地方没理解到,好象大家解释的很复杂的样子
举个例子,比如struts
客户端用<html:file name="UploadForm" property="file" />将文件上传
服务器端用FormFile接收,然后io写到服务器磁盘指定位置上,上传就完成了
不知道你说的是不是这个,是的话给你发些代码
#9
LS 谢谢 看一下你的代码 xql80329@163.com
#10
顶
#11
前台就用我说的那个file标签提交就行了,下面是提交后向服务器指定位置写文件
public class Action extends BaseAction {
private static final String UPLOAD_PATH = "D:\\upload\\";
private static final int BUF_SIZE = 8192;
public ActionForward upload(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
final UploadForm bodyForm = (UploadForm) form;
final FormFile formFile = bodyForm.getFile();
if (formFile.getFileSize() > 0) {
boolean isUpload = uploadFile(formFile);
System.out.println("upload complate is " + isUpload);
}
return mapping.findForward(FORWARD_SHOW);
}
private boolean uploadFile(FormFile formFile) throws FileNotFoundException,
IOException {
// 如果目录不存在,创建目录
new File(UPLOAD_PATH).mkdirs();
final File uploadFile = new File(UPLOAD_PATH, formFile.getFileName());
// 如果文件已存在,将旧文件删除
uploadFile.delete();
final OutputStream outputStream = new FileOutputStream(uploadFile);
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
bufferedInputStream = new BufferedInputStream(formFile.getInputStream());
bufferedOutputStream = new BufferedOutputStream(outputStream);
final byte temp[] = new byte[BUF_SIZE];
int readBytes = 0;
while ((readBytes = bufferedInputStream.read(temp)) != -1) {
bufferedOutputStream.write(temp, 0, readBytes);
}
bufferedOutputStream.flush();
} finally {
if (bufferedOutputStream != null) {
bufferedOutputStream.close();
}
if (bufferedInputStream != null) {
bufferedInputStream.close();
}
formFile.destroy();
}
return true;
}
}
#12
方法有几种
1 利用80端口,可以采用
a) html upload, 用表单的形式。 此方法适合于用户自己亲自操作的情况。
b) URLConnection, 用A机器的程序实现,适合于2个机器都是服务器,需要服务器之间交换文件
c) Web Service, 实质还是表单形式,但能规范操作
2 利用其它端口
a) ftp 最简单,因为服务器端有现成的可用
b) 其它协议,基本需要自己书写客户端和服务器端,比较麻烦,比如RMI/Socket
1 利用80端口,可以采用
a) html upload, 用表单的形式。 此方法适合于用户自己亲自操作的情况。
b) URLConnection, 用A机器的程序实现,适合于2个机器都是服务器,需要服务器之间交换文件
c) Web Service, 实质还是表单形式,但能规范操作
2 利用其它端口
a) ftp 最简单,因为服务器端有现成的可用
b) 其它协议,基本需要自己书写客户端和服务器端,比较麻烦,比如RMI/Socket
#13
see see!attention!