如何读取xlet.属性使用JSZip形成一个jar文件
How to read the xlet.properties form a jar file using JSZip?
这是我的整个jarupload.jsp文件(我得到错误读取yelp_embedded_10.r4798-iot.jar: JSZip未定义)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
<%@ taglib prefix='form' uri='http://www.springframework.org/tags/form'%>
<html>
<head>
<script src="/jp/resources/js/jquery-1.9.1.js"></script>
<script src="/jp/resources/js/jquery-ui-1.10.1.custom.min.js"></script>
<script src="/jp/resources/js/jquery-migrate-1.1.1.js"></script>
<script src="/jp/resources/js/jquery.xdomain.js" type="text/javascript"></script>
<script src="http://stuk.github.io/jszip/jszip.js"></script>
<script src="http://stuk.github.io/jszip/jszip-load.js"></script>
<script src="http://stuk.github.io/jszip/jszip-inflate.js"></script>
<!-- <script src="/contentstocking/resources/login.jsp" ></script> -->
<script src="http://malsup.github.com/jquery.form.js"></script>
<script src="/jp/resources/js/jquery.xdomain.js" type="text/javascript"></script>
<script type="text/javascript">
window.SESSION_COOKIE_NAME = 'ID';
</script>
<script type="text/javascript">
var iframeContents=" ";
var filesize;
var jarversion;
var jarname;
function strip(jsonresponse)
{
var tmp = document.createElement("DIV");
tmp.innerHTML = jsonresponse;
return tmp.textContent || tmp.innerText || "";
}
$(document).ready(function ()
{
$("#jarsubmit").click(function ()
{
if ("" == document.forms.TestForm.myFile.value) {
alert("Please select the file.");
return false;
}
else{
var iframe = $('<iframe name="postiframe" id="postiframe" style="display: none" />');
$("body").append(iframe);
var form = $('#TestForm');
form.attr("action", "/contentstocking/content/save_uploaded_file");
form.attr("method", "post");
form.attr("enctype", "multipart/form-data");
form.attr("encoding", "multipart/form-data");
form.attr("target", "postiframe");
form.attr("file", $('#myFile').val());
form.submit();
findsize();
$("#postiframe").load(function ()
{
iframeContents = $("#postiframe")[0].contentWindow.document.body.innerHTML;
alert("alert for iframecontents:: "+iframeContents);
var jsonObject = strip(iframeContents);
if(jsonObject.indexOf("string") != -1){
var result = $.parseJSON(jsonObject);
window.close();
}else{
$("#jsontext").val(iframeContents);
if($("#jsontext").val()!=null){
alert("Inside if jsontext is not null...");
window.open('updateJar.jsp?size='+filesize+'&'+'version='+jarversion+'&'+'name='+jarname);
//window.close();
}
}
});
return false;
}
});
});
$(function () {
if (!window.FileReader || !window.ArrayBuffer || !window.FileList || !window.Blob) {
alert("Browser version doen't support this functionality ");
return;
}
var $result = $("#result");
$("#myFile").on("change", function(evt) {
alert("Inside onchange...");
$result.html("");
var files = evt.target.files;
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = (function(theFile) {
return function(e) {
var $ul = $("<ul>");
alert("Before Try block");
try {
alert("Inside try block");
var zip = new JSZip(e.target.result);
$.each(zip.files, function (index, zipEntry) {
if(zipEntry.name == 'xlet.properties'){
var $title = $("<h3>", {
text : zipEntry.name
});
$result.append($title);
var fileData = JSON.stringify(zip.file("xlet.properties").asText());
fileData = fileData.substring(1,fileData.length -1);
$('#jsonvalue').val(fileData);
var fileDataArray = fileData.split('''n');
for(var i=0; i< fileDataArray.length; i++){
if("" != fileDataArray[i]){
var mystring = fileDataArray[i];
var ind = mystring.indexOf("''r");
if(ind!=-1){
fileDataArray[i] = mystring.substring(0, ind);
}
if(fileDataArray[i].length != 0){
$ul.append("<li>" + fileDataArray[i] + "</li>");
}
var jarNamesplit = fileDataArray[1].split('=');
var jarVersionsplit = fileDataArray[5].split('=');
jarname = jarNamesplit[1];
jarversion = jarVersionsplit[1];
$('#jarName').val(jarNamesplit[1]);
$('#jarVersion').val(jarVersionsplit[1]);
}
}
}
});
} catch(e) {
$ul.append("<li class='error'>Error reading " + theFile.name + " : " + e.message + "</li>");
}
$result.append($ul);
}
})(f);
// read the file !
reader.readAsArrayBuffer(f);
}
});
});
function findsize() {
if (($("#myFile"))[0].files.length > 0) {
filesize = ($("#myFile"))[0].files[0].size;
$('#jarSize').val(filesize);
}
else {
// no file chosen!
alert("File is empty");
}
}
</script>
<title>Example</title>
<%
String status = null;
int sessionTime = 0;
if(request.getSession() != null){
status = (String) request.getSession().getAttribute("loginStatus");
if(status == null){
response.sendRedirect(request.getContextPath());
}
}
else{
response.sendRedirect(request.getContextPath());
}
%>
</head>
<body>
<form id="TestForm" >
Choose a file to upload to the server:
<input type="file" id="myFile" name="myFile" />
<br />
<div id="result"></div>
<p>
<input type="button" value="Submit" id="jarsubmit"/>
<!-- <input type="text" id="jarName"/>
<input type="text" id="jarSize"/>
<input type="text" id="jarVersion"/> -->
<!-- <input type="text" id="jsonvalue" /> -->
</p>
</form>
<input type="text" id="jsontext" />
</body>
</html>
我需要显示xlet。属性详细信息在浏览按钮下面的div标记中。然后把它传到下一页但是问题是它没有读取xlet.properties.它显示::读取jarname.jar: JSZip在mozilla和chrome(版本28.0.1500.95 m)中都没有定义
来自以下几行:
<script src="http://stuk.github.io/jszip/jszip.js"></script>
<script src="http://stuk.github.io/jszip/jszip-load.js"></script>
<script src="http://stuk.github.io/jszip/jszip-inflate.js"></script>
这些url现在返回一个404页面。使用没有任何版本指示的远程文件是一个坏主意:JSZip中的任何破坏性更改(或者像这里的脚本的新位置)都可能在没有警告的情况下破坏您的代码。您应该下载自己的版本,或者使用提供特定版本JSZip的CDN,如下所示:
<script src="http://cdnjs.cloudflare.com/ajax/libs/jszip/2.3.0/jszip.js"></script>
最新版本包含加载/充气/放气代码,一个文件就足够了
相关文章:
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- Sails.js:同时发布文本输入和一个文件
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 要求定义另一个文件中的对象
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 如何将所有JS文件连接到一个文件夹中
- 请求准备一个文件并返回路径,允许用户在准备好时下载
- 从AngularJS中的另一个文件中的控制器访问服务
- 将任何CDN配置为只传递一个文件,无论请求的url是什么
- 通过AngularJS promise下载一个文件
- Grunt-将多个文件最小化/处理为一个文件
- 文件的节点自动化移动到另一个文件夹中
- 用于文件移动到另一个文件夹的Javascript自动化
- 需要从一个文件中获取多个模块
- 仅首先需要使用jasmine从节点添加一个文件
- jQuery Mobile样式从另一个文件加载内容
- 最小化CSS/JS文件,并使用命令行创建一个文件
- 我如何制作一个文件的副本并用gump将其移动到父文件夹
- 为什么当我上传文件并点击更多上传另一个文件的第一个删除