连接字符串中的变量

时间:2014-02-02 17:37:12

标签: php string variables

我在PHP中有一个简单的图像上传器,它正在上传图像,但由于某种原因,它将图像添加到'uploads'目录而不是该目录中的文件夹。

变量$ uploaddir似乎正在打印正确的字符串,我知道这是因为我使用$ uploaddir重新命名图像,我可以看到图像的名称与“uploads”中的文件夹名称相同夹。

我对URL字符串和变量进行了大量搜索,但无法解决这个问题。这是我的代码:

$uploaddir = "uploads/{$site_country}_{$site_state}_{$site_name}";

      $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

      echo "<p>";

      if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "File is valid, and was successfully uploaded.\n";
      } else {
         echo "Upload failed";
      }
      echo "</p>";

4 个答案:

答案 0 :(得分:0)

问题是您正在使用拼写错误构建文件路径

假设您的文件名是hello.png,那么结果$uploadfile目前是:

  

上传/ usa_ny_foohello.png

您需要:

  

上传/ usa_ny_foo / hello.png

那么,在$ uploaddir的末尾添加/呢?

$uploaddir = "uploads/{$site_country}_{$site_state}_{$site_name}/";

以更恰当的方式,您可以尝试这样做:

$uploaddir = "uploads/{$site_country}_{$site_state}_{$site_name}";
$uploadfile = $uploaddir . '/' . basename($_FILES['userfile']['name']);

答案 1 :(得分:0)

我认为您需要添加/

$uploadfile = $uploaddir .'/'. basename($_FILES['userfile']['name']);

答案 2 :(得分:0)

您需要先创建一个目录

mkdir('uploads/'.$directoryname, 0777, true);

例如

$uploaddir = "uploads/{$site_country}_{$site_state}_{$site_name}/";
if(!is_dir($uploaddir))
{
if (!mkdir($uploaddir, 0777, true)) {
    die('Failed to create folders...');
}

答案 3 :(得分:0)

你缺少反斜杠

$uploaddir = "uploads/{$site_country}_{$site_state}_{$site_name}/";

您可能需要先通过

创建该目录

mkdir($uploaddir, 0777, true)