我有一个dijit表单,该表单上载一个excel文件,并通过邮寄方式将其发送到upload.php,它将将该文件的数据加载到数据库。我的问题是该文件未发送。我使用dojo 1.10。
我已经尝试过xhrPost和iframe,但是没有成功,我不知道该怎么做以及应该发送哪种类型的数据(是文本?)。
<head>
<link rel="stylesheet" href="./dojoroot/dijit/themes/claro/claro.css">
<script>dojoConfig = {parseOnLoad: true}</script>
<script src='./dojoroot/dojo/dojo.js'></script>
<script>
require(["dojo/parser", "dijit/form/Form", "dijit/form/Button", "dojox/form/Uploader", "dojox/form/uploader/plugins/IFrame","dojox/form/uploader/FileList", "dojo/request/iframe", "dojo/domReady!"]);
function sendForm(){
var form = dojo.byId("uploadForm");
dojo.connect(form, "onsubmit", function(event){
dojo.stopEvent(event);
var xhrArgs = {
form: dojo.byId("uploadForm"),
handleAs: "text",
load: function(data){
dojo.byId("response").innerHTML = "Form posted.";
},
error: function(error){
dojo.byId("response").innerHTML = "Form posted.";
}
}
dojo.byId("response").innerHTML = "Form being sent..."
var deferred = dojo.xhrPost(xhrArgs);
});
}
dojo.ready(sendForm);
</script>
</head>
<div data-dojo-type="dijit/form/Form" id="uploadForm" action="upload.php" method="post" name="upload_excel" enctype="multipart/form-data">
<div>
<input data-dojo-type="dojox/form/Uploader" name="file" multiple="false" type="file" id="file" label="Browse" data-dojo-props="name:'file',showInput:'before',isDebug:true">
<input type="submit" id="submit" label="Upload" name="Import" dojoType="dijit/form/Button" />
<div id="files2" dojoType="dojox/form/uploader/FileList" uploaderId="file"></div>
</div>
</div>
在upload.php中,我有这个:
if(isset($_POST["Import"])){
$filename = $_FILES["file"]["tmp_name"];
....
我阅读了dojo文档,但无法理解如何解决我的问题。感谢您的帮助。
答案 0 :(得分:0)
您在表单内有错误。名称为myDynamicObject->setProperty("name", "Botanik");
的输入标签实际上是一个按钮,将其发送到服务器时将没有值。因此import
将返回false。
因此取消此检查将完成这项工作。