Applet在Win7下权限问题

g06117028 2013-11-27 09:40:24
Win7系统下,IE8浏览器,jre1.6,Applet可以运行,
但是不能读写本地文件,怎么解决?
...全文
381 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
g06117028 2013-11-27
  • 打赏
  • 举报
回复
现在用着个的人不多,所以遇到问题就难解决啊
末日哥 2013-11-27
  • 打赏
  • 举报
回复
Applet现在还在用啊?。。
Defonds 2013-11-27
  • 打赏
  • 举报
回复
实现 java.security.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() {
		}
	}
参考: js 动态调用 applet 内的方法

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧