使用PHP上传XML文件到web目录;MVC

本文关键字:web 目录 MVC 文件 PHP 上传 XML 使用 | 更新日期: 2023-09-27 18:19:13

我有一个问题,我的php脚本在ASP。净MVC。我已经部署到azure服务,并仔细检查了PHP是否已启用。

php脚本(upload.php)为:

<?php
if(move_uploaded_file ($_FILES['file'] ['tmp_name'], "Content/{$_FILES['file'] ['name']}")) {
    echo "Programme file uploaded successfully. You will be redirected to the content rater in a few seconds..";
    header("refresh:3; url=Home/Index");
    exit;
}
else {
    echo "XML file not uploaded successfully. Unexpected error.";
    header("refresh:3; url=Home/Index");
    exit;
}?>

我试图将文件上传到默认创建的文件夹(在visual studio中)"内容"。我试着输入位置(都失败了):

  • ~/内容/
  • /内容/
  • 内容/

我的表格如下:

<form action="/Scripts/php/upload.php" method="post" enctype="multipart/form-data">
        <label>Select file:</label>
        <input type="file" name="file">
        <br /><br />
        <input type="submit" class="btn btn-success" value="Upload">
    </form>

不管发生什么事,我总是被失败信息所吸引。

我认为我的脚本可能是错误的,所以我尝试了W3Schools的脚本(图像上传示例),这也总是失败。

经过一些研究,似乎你无法在Azure上上传到你自己的web目录-这是真的吗?

如果这是,我的选择是什么?

我也必须使用php,因为它是我试图完成的任务所需要的。

使用PHP上传XML文件到web目录;MVC

在对代码进行了一些修改之后,我得到了一些可以工作的东西!

这应该工作完美,你只是改变$target_dir。我已经在我的网站上测试过了。我有同样的问题,你有你提供的PHP代码,这使我相信,azure是不阻止任何类型的上传。

为了安全起见,做一些检查,比如文件类型、文件大小以及文件是否已经存在,都是值得的。

如果使用var_dump($_FILES);仍然有问题,因为它只是打印出变量,这将显示您是否真正获得了文件。

<?php
$target_dir = "Content/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
if(isset($_POST["submit"])) 
{
    if (move_uploaded_file($_FILES['file']['tmp_name'], $target_file)) {
        // Success
        print "Received {$_FILES['file']['name']} - its size is {$_FILES['file']['size']}";

    } else {
        // Failed
        print "Upload failed!";
        var_dump($_FILES);
    }
}
?>