- 浏览: 246362 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (151)
- JSP (18)
- Script (11)
- jsp數據庫操作 (4)
- Excel報表導出 (5)
- JAVA (13)
- 精品文章 (3)
- 网络知识 (1)
- XML (4)
- tomcat (4)
- WebService (2)
- Windchill (39)
- eclipse (1)
- 娱乐休闲 (4)
- 批處理 (7)
- 文件 (1)
- HTTP (3)
- HttpClient (4)
- BIOS (1)
- Socket (6)
- FTP (1)
- HTML (3)
- 人生哲理 (0)
- CSS (1)
- 极品软件 (5)
- 數據庫 (3)
- Mail (1)
- SWT Designer (1)
- 系統優化 (3)
- Ajax (3)
- df (0)
- aaa (0)
最新评论
-
magicyang918:
你上边写得是两种实现方式吗?
applet将服务器上文件下载到本机指定目录下 -
magicyang918:
哥哥,看的不是很明白,能不能说清楚点啊?
applet将服务器上文件下载到本机指定目录下 -
zzh03614:
写的很好啊,楼主,期待更多的内容更新
windchill_jsp_actions -
bspeng922:
没有图片啊……
Windchill 工作流的提示和技巧 -
talin2010:
!
jxl template 写excel
js调用applet实现上传下载
1.上传的代码:
applet代码:
package applet;
import java.applet.Applet;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
//本地文件上传(与Servlet交互)
public class AppInt extends Applet {
private String filePath;
private String fileName;
private String url;
private boolean bl=false;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
System.out.println(this.filePath);
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
System.out.println(this.fileName);
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
System.out.println(this.url);
}
public void setBl(){
this.bl=true;
System.out.println(this.bl);
send();
}
public void init() {
if(this.bl){
send();
}
}
public void send() {
{
try {
String filePath=getFilePath();
String fileName =getFileName();
String urlstring=getUrl();
System.out.println(filePath+"*****");
//网络路径很重要
URL url1 = new URL(urlstring+"?fileName="+URLEncoder.encode(fileName,"utf-8"));
//打开打开SOCKET链接
HttpURLConnection conn = (HttpURLConnection) url1
.openConnection();
conn.setRequestMethod("POST");
conn.setAllowUserInteraction(true);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(true);
conn.setRequestProperty("Content-Type", "application/octet-stream");
File jpgFile = new File(filePath);
if (jpgFile.isFile()) {
// 建立文件的输入流
FileInputStream fileInputStream = null;
fileInputStream = new FileInputStream(jpgFile);
BufferedInputStream bis = new BufferedInputStream(
fileInputStream);
OutputStream os = conn.getOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(os);
int len = 0;
byte[] bty = new byte[4096];
while ((len = bis.read(bty, 0, 4096)) != -1) {
bos.write(bty, 0, len);
bos.flush();
}
bos.close();
bis.close();
System.out.println(conn.getContentType() + ": "+ conn.getResponseCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
对应的Servlet代码:
package servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Calendar;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.DB.DBconnect;
public class Receive extends HttpServlet {
public Receive() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// PrintWriter out=response.getWriter();
InputStream in = request.getInputStream();
//System.out.print("qqqq");
String name=new String(request.getParameter("fileName").getBytes(),"utf-8");
String nn=new String(name.getBytes("ISO8859-1"),"utf-8");
System.out.println("文件名:"+name+"******"+nn);
String tr=name.substring(name.lastIndexOf("."),name.length());
// 根据时间得文件名
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis())
+tr;
System.out.println("服务器,文件名:"+name);
File f = new File("C:\\imgrec\\"+filename);
String path="c:/imgrec/"+filename;
FileOutputStream fos = new FileOutputStream(f);
byte[] b = new byte[1024 * 1024];
int bytes, sumBytes = 0;
while (true) {
bytes = in.read(b);
if (bytes <= 0)
break;
sumBytes += bytes;
fos.write(b, 0, bytes);
}
fos.close();
in.close();
/*
* 保存上传记录
*/
DBconnect dao=new DBconnect();
String sql="insert into fileList(fileName,filePath,name) values('"+filename+"','"+path+"','"+name+"')";
dao.save(sql);
dao.close();
}
public void init() throws ServletException {
}
}
JSP页面:
<%@ page language="java" import="java.util.*,applet.GLAppInt" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body >
<APPLET CODE = "applet.GLAppInt.class" archive="applet.jar" height="90%" MAYSCRIPT>
<param name="path" value="E:\test\upload">
</APPLET>
<script type="text/javascript">
function saveHtml(){
var filePath=document.applets[0].getAn();
var fileName=document.applets[0].getName();
//alert(fileName);
document.location="show.jsp?filePath="+filePath+"&fileName="+fileName;
}
</script>
</body>
</html>
//*************************
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'show.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
String url=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/appUpFile/servlet/Receive" ;
String filePath=request.getParameter("filePath");
if(filePath.length()>0){
String fileName=request.getParameter("fileName");
String[] fPath=filePath.split(",");
String[] fName=fileName.split(",");
%>
<div>
<APPLET CODE = "applet.AppInt.class" archive="ctr.jar" mayscript height="1" width="1">
</APPLET>
<script type="text/javascript">
function tsb(n){
var fn=document.getElementById('fn'+n).value;
var fp=document.getElementById('fp'+n).value;
var ul='<%=url%>';
document.applets[0].setFileName(fn);
document.applets[0].setFilePath(fp);
document.applets[0].setUrl(ul);
document.applets[0].setBl();
}
</script>
</div>
<div align='center'>本地文件上传</div>
<form action="">
<table>
<tr>
<td>文件名</td>
<td>路径</td>
<td>上传</td>
</tr>
<%
for(int i=0;i<fName.length;i++){
String fp=new String(fPath[i].getBytes("ISO-8859-1"),"utf-8");
String fn=new String(fName[i].getBytes("ISO-8859-1"),"utf-8");
%>
<tr>
<td><input type="hidden" name="fn<%=i %>" id="fn<%=i %>" value="<%=fn %>"><%=fn %></td>
<td><input type="hidden" name="fp<%=i %>" id="fp<%=i %>" value="<%=fp %>"><%=fp %></td>
<td><input type="button" name="sb" value="上传" onclick="tsb('<%=i %>')">
</td>
</tr>
<%
}
%>
</table>
</form>
<%
}
%>
</body>
</html>
数据库设计:
fileList表:有4个字段 id,fileName,filePath ,name
package com.DB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBconnect {
public static Connection conn = null;
public DBconnect() {
this.conn = getMySqlConnection();
}
public static Connection getMySqlConnection() {
String url = null;
try {
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://localhost:3306/listenle?useUnicode=true&characterEncoding=UTF-8";
conn = DriverManager.getConnection(url, "root", "rufeng8848");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/*
* 插入表fileList 给每一次上传的文件做好记录
* 记录上传
*/
public void save(String sql){
Statement st=null;
try {
st=conn.createStatement();
st.execute(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 取出fileList表中 文件名,路径
* 便于下载
* 返回类型为
*/
public ResultSet findAll(){
ResultSet rs=null;
Statement st=null;
String sql="select * from fileList";
try {
st=conn.createStatement();
rs=st.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/*
* 关闭链接
*/
public void close() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭异常");
}
}
}
这样就可以上传了。
经过测试发现,JS调用applet报java.security.accesscontrolexception异常。
原来是安全机制的问题。在客户端修改一下java的安全机制就可以了。
总结:在文件的传输中是流的形式存在的,在硬盘上是文件的形式存在的。我们要做的只是通过HttpServletRequest和HttpServletResponse,或者是response和request来发送流和读取流。以及把文件转换成流或把流转换成文件的操作。
发表评论
-
Applet数字签名,授予访问本地资源的方法
2010-07-20 06:22 1230介绍Applet数字签名,授予访问本地资源的方法。 步骤一:将 ... -
用javascript实现本地文件的读写
2010-07-17 07:58 2671用javascript实现本地文件的读写 2009-11-1 ... -
mupload快速入门
2010-07-17 07:55 1639QuickStart mupload快速入门 说明 ... -
使用java applet技术构建的基于标准http协议的大文件上传组件 mupload
2010-07-17 07:55 3137mupload 使用java applet技术构建 ... -
如何用Java客户端/applet通过HTTP POST上传文件
2010-07-17 07:47 2868如何用Java客户端/applet通过HTTP POST上传文 ... -
循环链表使用
2008-07-02 12:14 1160500个人站一圈,从第一个开始挨个喊1234567,喊道7的人 ... -
jar打包命令详解(转)
2008-06-20 10:42 1828常常在网上看到有人询问:如何把 java 程序编译成 .exe ... -
java读取配置文件信息
2008-06-18 18:56 2358import java.io.FileInputStream; ... -
Java虚拟机内存调整
2008-06-13 19:33 3526Java虚拟机默认分配64M内存,如果你的应用比较大,超出64 ... -
学会数字签名
2008-06-05 16:54 1004JAVA实例:学会数字签名数字签名 用Applet写的java ... -
java学习
2008-05-27 19:52 767java学习日记(线程).doc jsp生成静态的hmtl文件 ... -
谈谈JAVA的反编译
2007-01-01 12:44 1360如今JAVA语言在全世界范围正如火如荼般的流行,它广范地应用在 ...
相关推荐
### JavaApplet与JavaScript #### 6.1 JavaApplet ##### 6.1.1 JavaApplet概述 **Applet 类层次结构:** JavaApplet 的基础是 `java.applet.Applet` 类,它是从 `java.awt.Panel` 继承而来的一个特殊的图形组件。...
在`jsinterface.js`中,我们可以这样调用Applet的方法: ```javascript var applet = document.applets['MyApplet']; // 获取Applet实例 applet.myJavaMethod(); // 调用Applet的公共方法 ``` 而在Applet中,我们...
- **JavaScript调用Applet**:使用`document.appletID.methodName`的语法,其中`appletID`是Applet对象的ID,`methodName`是Applet中公开的公共方法。 - **Applet调用JavaScript**:Applet中的`getDocumentBase()`...
JavaApplet是Java技术在早期Web开发...现在,Web应用程序更倾向于使用JavaScript框架(如React、Vue.js、Angular)以及WebAssembly等技术来实现类似功能,它们不需要额外的插件,且在现代浏览器中有更好的支持和性能。
Java Applet调用C++ SSO登录JavaScript脚本开发教程主要涉及了跨语言交互、SSO(Single Sign-On,单点登录)技术以及自动化登录流程的实现。在本教程中,我们将探讨如何利用Java Applet作为桥梁,调用C++实现的SSO...
开发者现在更多地转向其他技术,如JavaScript、HTML5 Canvas或Web Applets(基于Web的Java应用)来实现类似的功能。 总结: Java Applet曾是Web开发的重要组成部分,但由于安全考虑已被逐渐淘汰。然而,学习Java ...
Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在浏览器中运行的小型应用程序。Applet的概念源自于90年代中期,当时Web页面主要由静态HTML构成,而Java Applet的出现为网页带来了交互性...
- 随着Web技术的发展,Java Applet逐渐被其他技术如JavaScript、Flash和现代的Web框架所取代。 - Java Web Start和JavaFX提供更现代的解决方案,但仍基于Java,但不依赖于浏览器环境。 7. **学习资源** - "Java ...
通过上述方法,Java Applet 可以直接执行 JavaScript 代码,从而实现更灵活的功能扩展。 综上所述,通过灵活运用 Java、Java Applet 和 JavaScript 之间的交互机制,开发者可以创建出更加丰富、动态的 Web 应用程序...
- 考虑到Java Applet已过时且不再被广泛支持,现代Web开发更倾向于使用JavaScript、HTML5 Canvas或WebGL来实现类似的功能。 - JavaFX是Java的现代GUI库,提供更丰富的功能和更好的跨平台支持,可以替代AWT和Swing...
通过`LiveConnect`技术,JavaScript可以调用Applet的方法,反之亦然。例如,JavaScript可以改变Applet的显示内容: ```javascript function changeText(newText) { document.appletID.setParameter("text", new...
Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在浏览器中运行的小型应用程序。这个"Java Applet实例编程"很可能是包含了一系列的Java Applet编程示例,帮助学习者理解如何利用Java ...
Java与Java Applet和JavaScript混编方法是指在网页开发中,通过灵活使用Java、Java Applet和JavaScript三种语言的优点,实现它们之间的互相补充,开发更完美的Web应用程序。 在Java与JavaScript混编中,可以使用...
- JavaScript框架(如React、Vue.js)和库(如jQuery)提供了丰富的功能,可以实现与Java Applet类似甚至更高级的交互性。 - WebAssembly允许在浏览器中运行编译后的C++或其他语言代码,提供高性能的应用程序。 -...
这个"javaApplet学习简单例子"是一个关于计算贷款利率的实例,非常适合初学者理解Java Applet的工作原理和编程模式。 在Java Applet中,主要涉及以下几个核心知识点: 1. **Applet类**:所有的Java Applet都继承自...
然而,随着技术的发展,特别是JavaScript和现代Web框架的崛起,Java Applet的使用逐渐减少,因为它需要用户的浏览器安装Java插件,这在安全性和兼容性方面存在一些问题。 2. Applet的生命周期: Java Applet有四个...
Java Applet特效通常指的是利用Java编程语言实现的各种视觉效果,如动画、图形绘制、用户交互等。 在Java Applet中,主要涉及以下几个知识点: 1. **Java基础**:Java Applet是基于Java语言编写的,因此,理解Java...
考虑到Applet的局限性,现在更常见的文件上传解决方案是使用JavaScript、Ajax或现代Web框架(如React、Angular等)结合服务器端语言(如PHP、Python、Node.js等)实现。这些技术提供了更安全、更灵活的解决方案,且...
- Applet的历史:Java Applet在1995年随着Java的发布而出现,旨在实现“写一次,到处运行”的跨平台目标,尤其是在Web浏览器中的应用。 2. **Applet生命周期** - Applet的生命周期包括初始化、加载、显示、暂停、...