【问题标题】:PHP file upload and rename to specific name to overwrite previous versionPHP文件上传并重命名为特定名称以覆盖以前的版本
【发布时间】:2014-04-02 20:32:27
【问题描述】:

我正在尝试通过创建一个小型上传表单将 PDF 上传到菜单目录并为其指定特定名称以覆盖以前的版本,从而使一些同事可以轻松地在线更新菜单(两个 PDF)。

这是我目前所拥有的......

表格:

<section>
<form action="menu_uploader.php" method="post" id="menu_upload" name="menu_upload" enctype="multipart/form-data" >
<p><label for="wine_list_menu_upload">Wine List -> </label>&nbsp;<input type="file" name="wine_list_menu_upload" id="wine_list_menu_upload"></p>
<p><label for="food_flight_menu_upload">Food &amp; Flights -> </label>&nbsp;<input type="file" name="food_flight_menu_upload" id="food_flight_menu_upload"></p>
<p><input type="submit" name="submit" value="Upload" id="submit"></p>
</form>
</section>

PHP

<?php

if( ($_FILES["wine_list_menu_upload"]["type"] == "application/pdf") &&
    ($_FILES["food_flight_menu_upload"]["type"] == "application/pdf") &&
    ($_FILES["wine_list_menu_upload"]["size"] < 1048576*5) && 
    ($_FILES["food_flight_menu_upload"]["size"] < 1048576*5))
    {   
        if($_FILES["wine_list_menu_upload"]["error"] > 0 || $_FILES["food_flight_menu_upload"]["error"] > 0)    
            {echo "Error Code: " . $_FILES["wine_list_menu_upload"]["error"] xor $_FILES["food_flight_menu_upload"]["error"] . "<br>";}
                else
                    {move_uploaded_file($_FILES["wine_list_menu_upload"]["tmp_name"], "tasting-bar/menus/test/SEWC-Wine_Menu.pdf");
                     move_uploaded_file($_FILES["food_flight_menu_upload"]["tmp_name"], "tasting-bar/menus/test/SEWC-Food_Flight_Menu.pdf");
                        echo "Menus uploaded successfully!"; }
    }

else
  {
  echo "Invalid file type. Must be a PDF and under 5MB. Sorry!<br/>";
  echo "File Type - " . $_FILES["wine_list_menu_upload"]["type"] . "<br/>";
  echo "File Name - " . $_FILES["wine_list_menu_upload"]["name"];

  }

?>

我需要将“wine_list_menu_upload”重命名为“SEWC-Wine_Menu.pdf”并改名为“tasting-bar/menus/”和 “food_flight_menu_upload”重命名为“SEWC-Food_Flight_Menu.pdf”并改名为“tasting-bar/menus/”

我做错了什么?

【问题讨论】:

  • 您是否设置了文件夹的写入权限?
  • 您是否尝试过使用完整的文件夹描述,`C:\tasting-bar\menus`?
  • 目录“tasting-bar/menus/”设置为777
  • 此网络服务器在 GoDaddy 上。不知道其余的会是什么样子。 sewinecollective.com/tasting-bar/menus ?
  • 是windows还是linux服务器?

标签: php file upload rename overwrite


【解决方案1】:

尝试在 move_uploaded_file 之前添加这些行

chmod('tasting-bar/', 0777);
chmod('tasting-bar/menus', 0777);
chmod('tasting-bar/menus/test/', 0777);

如果是权限问题,应该这样解决

【讨论】:

  • 想通了,但我无法回答我自己的问题,因为我是这里的新手。我在脚本的顶部插入了这个... $dir_root = $_SERVER['DOCUMENT_ROOT'];然后将 $dir_root 放在所需路径之前。感谢您的意见!
猜你喜欢
  • 2018-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-25
  • 2012-05-04
  • 2016-09-06
  • 2014-11-26
  • 1970-01-01
相关资源
最近更新 更多