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

时间:2015-10-24 10:52:24

标签: c# php asp.net asp.net-mvc azure

我在ASP.NET MVC中遇到了php脚本的问题。 我已经部署到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上自己的网络目录 - 这是真的吗?

如果是这样,我有哪些选择?

我还必须使用php,因为我正在尝试完成的任务。

1 个答案:

答案 0 :(得分:0)

稍微调整一下你的代码后,我得到了一些有效的东西!

这应该可以完美地为您改变$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);
    }
}
?>