xml 上传 php,php – 上传XML文件并解析它 – 没有临时文件

使用

PHP 5,我想通过Web表单上传XML文件,并使用

SimpleXML解析它.

我尝试了几个SimpleXML示例,它们在我的CentOS 6 Linux服务器上运行良好.

但是,我还没有任何处理PHP上传文件的经验.

我应该使用$_FILES吗?我是否总是要使用临时文件,还是可以完全在内存中完成?

从PHP Cookbook我复制了这个例子:

enctype="multipart/form-data">

if (isset($_FILES['doc']) &&

($_FILES['doc']['error'] == UPLOAD_ERR_OK)) {

$oldPath = $_FILES['doc']['tmp_name'];

$newPath = '/tmp/' . basename($_FILES['doc']['name']);

if (move_uploaded_file($oldPath, $newPath)) {

print "File moved from $oldPath to $newPath";

} else {

print "Couldn't move $oldPath to $newPath";

}

} else {

print "No valid file uploaded.";

}

}

?>

它工作正常,并为我添加的print_r语句打印以下输出:

Array

(

[document] => Array

(

[name] => my_file.xml

[type] => text/xml

[tmp_name] => /tmp/phpRD9cYI

[error] => 0

[size] => 1610252

)

)

我可以看到/tmp/my_file.xml文件.

我的问题是,如果我可以跳过临时文件的创建?

我不喜欢他们,因为:

>他们有时是安全问题

>他们必须清理(通过cronjob?)

>他们的名字可能会发生碰撞(可能很少发生,除非是1)

更新:另外,我不明白,为什么我不能在$oldPath读取文件?它在那里找不到,我必须调用move_uploaded_file()然后读取$newPath …

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值