解决方案 »
- (急!)配置spring-security管理用户登录权限,启动tomcat报错!!
- 请求帮助,关于hibernate自身映射类取值
- struts<html:form>标签问题 在线等 解决立即给分
- 大侠来解决问题,JSP的错误问题。。。在线等!!!(80分!!!!)
- 关于jsp2.0中EL(expression language)的问题。大虾们请进!!
- 求,从oracle或者sqlserver Blob字段中读取内容代码;把一个文件插入Blob得代码
- 无法通过链接打开doc文档(急!!!)
- 页面刷新的问题
- ApacheModuleJServ.dll 这是什么?好像TOMCAT与APACHE的结合要这个呢???从哪里得到呢?
- javaweb的文件上传功能,在苹果手机上是否能上传?
- sevlet-通过网页访问提示资源不存在
- 想要做一个图片网站,不打包zip,如何实现批量下载多张图片?
2,调用applet方法,不带任何参数
3,applet读取hidden值,写入文件我瞎猜的,你试试。
function getApplet(){
if (document.applets.length > 0){
return document.applets[0];
}else if(document.embeds.length > 0){
return document.embeds[0];
}else{
alert("<emxUtil:i18nScript localize="i18nId">emxComponents.Common.CanNotStartApplet</emxUtil:i18nScript>");
return "";
}
}然后 js 中才能对 applet 中的方法进行调用:
function next(){
var numOfValid = <%=numOfValidFiles%>;
if(numOfValid < 1){
alert('There is no file valid to upload!');
return;
}
var validDirs = getApplet().directoryValid('<%=directoryStr%>');
parent.document.location = "asbEngrDocumentImportCheckinAppletsFS.jsp?xyz=xyz&validDirs=" + validDirs;
}
那个是什么意思, 第一个我看懂了。
/**
* added by Defonds
* @param filesInfo
* File Name1|File Flag Public1|File Document Language1|File Description1|File Operating System1|File Store1|File Title1|File Flag Exp1
*/
public void addFileInfomation(String filesInfo,String directoryInfo,String formatInfo){
System.out.println("the file info str gived to applet is:" + filesInfo);
String fileName = "",fileFlagPublic = "",fileDocomentLanguage = "",fileDescription = "",
fileOperatingSystem = "",fileStore = "",fileTitle = "",fileFlagExp = "";
String[] filesInfoArr = filesInfo.split("|");
if(filesInfoArr.length > 0){
fileName = filesInfoArr[0];
fileFlagPublic = filesInfoArr[1];
fileDocomentLanguage = filesInfoArr[2];
fileDescription = filesInfoArr[3];
fileOperatingSystem = filesInfoArr[4];
fileStore = filesInfoArr[5];
fileTitle = filesInfoArr[6];
fileFlagExp = filesInfoArr[7];
}
java.io.File checkinFile = new java.io.File(directoryInfo);
FileInfo file = new FileInfo(checkinFile);
file.setFileStore(fileStore);
file.setFormat(formatInfo);
file.setFileFlagPublic(fileFlagPublic);
file.setFileFlagEXP(fileFlagExp);
file.setFileDocumentLanguage(fileDocomentLanguage);
System.out.println("applet-filename=" + file.getFileName());
addFile(file);
System.out.println("a file added successfully!");
}
/**
* @added by Defonds
* @param directoryStr
* D:/tmp/tmp/AppDevGuide1071.pdf@@@D:/tmp/tmp/AppDevGuide1072.pdf@@@...
* @return
* D:/tmp/tmp/AppDevGuide1071.pdf@@@D:/tmp/tmp/AppDevGuide1072.pdf...
* @note
* only return the directories which are valid
*/
public synchronized String directoryValid(String directoryStr){
System.out.println("the file directory info give to applet is:" + directoryStr);
_fileValidStr = directoryStr;
FileValidRunner runner = new FileValidRunner();
AccessController.doPrivileged(runner);
System.out.println("applet return value is:" + _fileValidStrRe);
return _fileValidStrRe;
}
/**
* @author defonds
*/
class FileValidRunner implements PrivilegedAction { public Object run() {
String[] direArrs = _fileValidStr.split("@@@");
if(direArrs.length > 0){
for(int i = 0;i < direArrs.length;i ++){
String tmpName = direArrs[i];
java.io.File tmpFile = new java.io.File(tmpName);
if(tmpFile.exists()){//only return the directories which are invalid
if(_fileValidStrRe.equals("")){//the first one
_fileValidStrRe = tmpName;
}else{//not the first one
_fileValidStrRe += "@@@" + tmpFile;
}
}
}
}
return null;
} FileValidRunner() {
}
}addFileInfomation 是 js 向 applet 传递一些服务器提供的文件信息,诸如文件名(含完整的路径信息)、文件格式、文件内容语言、操作系统…
directoryValid 是 js 调用 applet 方法,对一系列的文件路径进行验证,applet 把有效的(即本地确实存在此文件)文件路径进行返回。希望可以帮到你:)
addFileInfomation这个函数和js上没有关系呀? 没看见什么地方调用了。
我现在的问题是2个函数,为什么直接返回abc的就可以调用,而且能返回值。 但是创建文件的函数就调用不了?
applet 操作本地磁盘,需要实现 PrivilegedAction。
给你个例子:
/**
* @author defonds
*/
class FileValidRunner implements PrivilegedAction { public Object run() {
String[] direArrs = _fileValidStr.split("@@@");
if(direArrs.length > 0){
for(int i = 0;i < direArrs.length;i ++){
String tmpName = direArrs[i];
java.io.File tmpFile = new java.io.File(tmpName);
if(tmpFile.exists()){//only return the directories which are invalid
if(_fileValidStrRe.equals("")){//the first one
_fileValidStrRe = tmpName;
}else{//not the first one
_fileValidStrRe += "@@@" + tmpFile;
}
}
}
}
return null;
} FileValidRunner() {
}
}
我这java代码学了3天,写着点东西,真不容易。 非常感谢大家的帮忙。
Defonds您在我很多帖子中回复。感谢您。 这几天在您回复中的代码学到了,不少东西。
/**
* HTML中调用创建文件
* **/
public void RunWriteTxt(final String strTxt) {
String result = AccessController
.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
String res = null;
WriteTxt(strTxt);
return res;
}
});
}经过测试运行一切正常。 就是在写个函数,里面写一些代码调用创建文件的函数就可以了。