人工智能的影响会影响SEO吗

jsp实现ftp上传,客户端不能上传 - ITeye问答
我用jsp实现ftp上传功能,但是客户端不能往服务器端传上传文件,服务器端自己可以上传文件,代码如下:
package com.syh.struts.
import java.io.FileInputS
import java.io.IOE
import java.io.UnsupportedEncodingE
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.apache.struts.action.A
import org.apache.struts.action.ActionF
import org.apache.struts.action.ActionF
import org.apache.struts.action.ActionM
import sun.net.TelnetOutputS
import sun.net.ftp.FtpC
public class MainCtrlAction extends Action {
private FtpClient ftpC
public ActionForward execute(ActionMapping mapping, ActionForm form,
&& HttpServletRequest request, HttpServletResponse response) {
& // TODO Auto-generated method stub
& try {
&& request.setCharacterEncoding("gbk");
& } catch (UnsupportedEncodingException e1) {
&& // TODO Auto-generated catch block
&& e1.printStackTrace();
& }
& response.setCharacterEncoding("gbk");
& try {
&& //连接ftp服务器
&& connectServer("127.0.0.1", "admin", "for720314","aa");
&& //上传文件;并返回上传文件的信息
&& request.setAttribute("inf", upload(request.getParameter("file")));
&& } catch (Exception e) {
&& System.out.println(e.toString());
&& request.setAttribute("inf", e.toString());
&& //request.getRequestDispatcher("view_inf.jsp").forward(request, response);
&&
&& } finally {
&& if (ftpClient != null) {
&& try {
&&& ftpClient.closeServer();
&& } catch (IOException e) {
&&& // TODO Auto-generated catch block
&&& e.printStackTrace();
&& }
&& }
&& }
&& //request.getRequestDispatcher("view_inf.jsp").forward(request, response);
& return mapping.findForward("cg");
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 =
FileInputStream is =
//"upftpfile"用ftp上传后的新文件名
String fn=filename.substring(filename.lastIndexOf("\\")+1);
os = ftpClient.put(fn);
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];
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
} finally {
if (is != null) {
is.close();
if (os != null) {
os.close();
return "上传文件成功!";
}
}
那位大侠给解决一下
采纳的答案
这个问题出现在你使用"request.getParameter("file")"获取到的文件路径,说白了就是一个字符串.
想通过它来构造IO留来获取文件是行不通的,你一定会发现,系统找不到指定的文件,除非服务器和客户端在同一台机器上.
那这个问题需要如何解决呢?
1.设置页面form属性:method="POST" enctype="multipart/form-data"
2.此时会遇到一个问题,页面上其他控件的值无法使用原来的方法request.getParameter("name")获取了.
3.可以参看这段代码,是我以前写的一段代码:
Map&String, String& fieldMap = new HashMap&String, String&();
// 处理文件上传
Map&String, byte[]& fileMap = new HashMap&String, byte[]&();
RequestContext requestContext = new ServletRequestContext(request);
if (FileUpload.isMultipartContent(requestContext)) {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(
// 设置上传附件不能大于2k
servletFileUpload.setSizeMax(2000000);
List&FileItem& list = servletFileUpload
.parseRequest(request);
for (Iterator&FileItem& listIt = list.iterator(); listIt
.hasNext();) {
FileItem fileItem = listIt.next();
String name = fileItem.getName();
// 排除其他控件值以及空文件
if (null != name && !"".equals(name)) {
byte[] byteFile = fileItem.get();
fileMap.put(fileItem.getName(), byteFile);
} else if (null == name) {
putFormField(fieldMap, fileItem.getFieldName(),
fileItem.getString("UTF-8"));
} catch (FileUploadException e) {
e.printStackTrace();
ServletContext application = getApplication(request);
String ip = (String) application.getAttribute(Constants.IP);
String port = (String) application.getAttribute(Constants.PORT);
manager = new MmsManager(ip, port);
String result = manager.sendMessage(fieldMap, fileMap);
System.out.println(result);
4.注意fileItem并不是指文件,而是任意页面控件信息,包括文件.
OK!
文件你应该知道怎么获取了,既然二进制文件已经拿到了,下一步就是上传了.
相信你一定了解!
已解决问题
未解决问题&&所属分类 &&
[新手指南][控制台]为什么不能从“在线FTP文件传输”上传或下载文件?
如果您点击“在线FTP文件传输”得到的是一个空白的窗口,那是因为您的电脑上没有安装Java runtime。请按照下面的步骤允许Java runtime在您的电脑上运行。
1)打开IE,点击“工具”下面的“Internet 选项”
2)点击“安全”,然后点击“自定义级别”,如图1所示
3)在“ActiveX控件和插件”下的第五个选项“下载未签名的ActiveX控件”选择“提示”选项,如图2示
4)点击“确定”,在弹出的窗口点击“是”,然后再点击“应用”
5)刷新页面,然后再次点击“文件管理”下的上传或下载按钮,您会看到如图3那样的窗口,右击窗口顶部的提示,选中“安装ActiveX控件”,然后按照提示一步一步地进行安装即可。如果您使用的是IE8,当您点击上传或下载时,会看到一个弹出的窗口(如图4),您只需点击“运行”然后等待其安装完成即可。
提示:您也可以直接从/en/download/windows_ie.jsp?locale=en&host=:80&bhcp=1下载Java runtime,然后按照页面/en/download/help/enable_browser.xml上的提示安装到您的电脑上。&图1
下载次数:0
→如果您认为本词条还有待完善,请
上一篇下一篇
词条内容仅供参考,如果您需要解决具体问题(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
暂无同义词
词条管理员
词条创建者
超级管理员
最近编辑者
浏览次数: 14180 次
编辑次数: 5次

我要回帖

更多关于 人工智能对人类的影响 的文章

 

随机推荐