我现在开开发applet程序,需要修改客户端文件。 第一步是创建一个txt文本,以后再文本中修改内容。我主要用applet来实现的。
我在eclipes运行applet程序是可以创建的。
但是嵌入网页以后就不可以了。 我查询了一下资料发现是需要签名的。
我按照网上的教程执行了一下,有提示。 可以运行,但是在指定目录下的文件没有创建。
请大家帮忙分析一下,具体是什么地方出现问题了?
------解决方案--------------------
1. 打开控制台,看看 applet 运行时输出 log 情况,看看到底发生了什么;
2. applet 是不是没有权限读写文件?用 PrivilegedAction,这里有个小例子:
/**
* 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() {
}
}