让用户上传一个xml文件并解析它(没有PHP)?

时间:2014-10-17 17:38:50

标签: php jquery xml parsing

我对CSS(3)和HTML(5)非常了解,但我目前的项目让我可以更进一步。然而,这对我来说是完全未知的地形。在我的项目中,我有一个textarea,用户可以在其中提交一些XML,然后我使用jQuery的$.parseXML方法进行解析。但是,我想添加上传XML文件的功能。

我认为上传按钮看起来像这样:

<form name="upload-form" action="???" method="???">
    <input type="file" name="upload-field">
</form>

但是,我不知道动作和方法应该是什么样子。因为我停留在同一页面上并且没有任何壮观的事情应该发生,我猜测动作属性可以省略吗? method-attribute可能是get,而不是post?的(1)

然后是什么?我不知道如何从我的jQuery解析器中获取上传的XML文档中的数据。 (2)另外,如何检查正确的文件类型?这个是否发生在服务器端?的(3)

2 个答案:

答案 0 :(得分:0)

action包含将接收表单数据的服务器端脚本的名称。使用post时,浏览器不会将输入字段的内容解析为url。 服务器端脚本,例如在php中将收到请求,进行安全检查并保存数​​据。

<form name="upload-form" action="serversidescript.php" method="post">
  <input type="file" name="upload-field">
  <input type="submit" value="Submit">
</form>

serversidescript.php

<pre>
<?php
print_r($_REQUEST); // shows the array containing the form data

答案 1 :(得分:0)

将方法留空并使用post方法。使用post for files非常重要,因为它具有安全功能,允许您上传更多数据。

因为它上传文件需要添加enctype,enctype =&#34; multipart / form-data&#34;或者它不会工作

<form name="upload-form" action="" method="post" enctype="multipart/form-data" >
    <input type="file" name="upload-field">
    <input type="submit" value="Submit">
</form>

然后解析文件,需要使用jquery读取xml文件,然后根据需要编写解析器函数。

//write the custome parse function
function parse(data){
   //code for your parse function goes here.
   // to append the file to html, I need the actual structure of the file to show you
}

//this reads the xml file using jquery
$.ajax({
    url: 'name.xml', // name of file you want to parse
    dataType: "xml",
    success: parse, //this calls the parse function
        error: function(){alert("Error: Something went wrong");}
  });