因为在一个安全的环境中的Flex错误上传文件 ,我试图破解在一起的办法解决这个在JavaScript。
要做到这一点,我试图在JavaScript中创建一个隐藏的形式,而我会附上一个文件,一些XML元数据,那么它在多形式邮寄到服务器。 我首先想到的是让这个在HTML工作,然后口这段JavaScript代码到我的Flex项目。
我的第一个问题是附加的文件,以在JavaScript中隐藏的表单。 我错在这里做一些事情。 我用JavaScript很没有经验,所以如果有更好的方式来做到这一点,我渴望学习。
下面是我当前与打码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>hidden form post demo</title>
</head>
<body>
<script>
//helper function to create the form
function getNewSubmitForm(){
var submitForm = document.createElement("FORM");
document.body.appendChild(submitForm);
submitForm.method = "POST";
submitForm.enctype = "multipart/form-data";
return submitForm;
}
//helper function to add elements to the form
function createNewFormElement(inputForm, inputType, elementName, elementValue) {
var inputElement = document.createElement("INPUT");
inputElement.name = elementName;
inputElement.type = inputType;
try {
inputElement.value = elementValue;
} catch(err) {
alert(err.description);
}
inputForm.appendChild(inputElement);
return inputElement;
}
//function that creates the form, adds some elements
//and then submits it
function createFormAndSubmit(){
var submitForm = getNewSubmitForm();
var selectedFileElement = document.getElementById("selectedFile");
var selectedFile = selectedFileElement.files[0];
createNewFormElement(submitForm, "HIDDEN", "xml", "my xml");
createNewFormElement(submitForm, "FILE", "selectedFile", selectedFile);
submitForm.action= "my url";
submitForm.submit();
}
</script>
<div id="docList">
<h2>Documentation List</h2>
<ul id="docs"></ul>
</div>
<input type="file" value="Click to create select file" id="selectedFile"/>
<input type="button" value="Click to create form and submit" onclick="createFormAndSubmit()"/>
</body>
</html>
你可以看到,我有一个try / catch块createNewFormElement
。 一个异常被抛出有,但有消息称“不确定”。
萤火虫,我可以看到elementValue
被设置为一个文件对象,所以我真的不知道发生了什么事情。