使用form上传文件到application server的另一种办法

94 阅读1分钟

Created by Jerry Wang, last modified on Sep 23, 2014

界面如下: 使用fileupload控件选择local file后,点击Stash the file上传:
clipboard1
在ABAP端接收到的http request header里包含的form fields如下:
clipboard2
在ABAP端接收到的完整http request download到本地如下:
clipboard3

source code如下:

<html>
<form enctype="multipart/form-data" method="post" name="fileinfo">
 <label>Your email address:</label>
 <input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" /><br />
 <label>Custom file label:</label>
 <input type="text" name="filelabel" size="12" maxlength="32" /><br />
 <label>File to stash:</label>
 <input type="file" name="file" required />
</form>
<div id="output"></div>
<a href="javascript:sendForm()">Stash the file!</a>
<script>
function sendForm() {
 var oOutput = document.getElementById("output");
 var oData = new FormData(document.forms.namedItem("fileinfo"));

 oData.append("CustomField", "This is some extra data");

 var oReq = new XMLHttpRequest();
 oReq.open("POST", "https://ag3:44354/sap/crm/file_upload", true);
 oReq.onload = function(oEvent) {
   if (oReq.status == 200) {
     oOutput.innerHTML = "Uploaded!";
   } else {
     oOutput.innerHTML = "Error " + oReq.status + " occurred uploading your file.<br \/>";
   }
 };

 oReq.send(oData);
}
</script>
</html>