PHP图片上传功能,保存到一个目录,然后返回保存图片的url

标签 php file-upload return-value

我正在尝试使用 PHP 将图像上传到服务器并保存在目录中,然后返回图像 url。

HTML:

<input name="photo" type="file" />

PHP

save_string_to_database( upload_img($_POST['photo']));

我对 PHP 不太了解,我从 SO 那里得到了一个代码,但它没有做任何事情。请帮助我修复此代码,或提供一个简单的代码来执行上传:

function upload_img($img){
    if ((($_FILES[$img]["type"] == "image/gif")
    || ($_FILES[$img]["type"] == "image/jpeg")
    || ($_FILES[$img]["type"] == "image/pjpeg")
    || ($_FILES[$img]["type"] == "image/jpg")
    || ($_FILES[$img]["type"] == "image/png"))
    && ($_FILES[$img]["size"] < 20000)
    && (strlen($_FILES[$img]["name"]) < 51)){
       if ($_FILES[$img]["error"] > 0){
           echo "Return Code: " . $_FILES[$img]["error"];
       }
       else{
           // echo "Upload: " . $_FILES["image"]["name"] . "<br />";
           // echo "Type: " . $_FILES["image"]["type"] . "<br />";
           // echo "Size: " . ($_FILES["image"]["size"] / 1024) . " Kb<br />";
           //  echo "Temp file: " . $_FILES["image"]["tmp_name"] . "<br />";

           if (file_exists(THEME_DIR."/images/" . $_FILES[$img]["name"])){
               echo $_FILES[$img]["name"] . " already exists. ";
           }
           else{
               move_uploaded_file($_FILES[$img]["tmp_name"],THEME_DIR."/images/"  . $_FILES[$img]["name"]);
               return THEME_DIR."/images/"  . $_FILES[$img]["name"];
           }
       }
   }
}

最佳答案

这是一个简单的。

上传图片的 HTML 表单

<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="512000" />
    Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

执行上传的 PHP 文件

<?php

$uploaddir = '/var/www/uploads/';
$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>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";

?> 

Source

关于PHP图片上传功能,保存到一个目录,然后返回保存图片的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18801056/

相关文章:

Android 如何停止/终止/取消媒体上传或下载

c - 从 C 中的不同文件返回结构

php - 更改 foreach 循环内的初始数组?

php - MySQL选择多条件

php - 如何访问 Symfony Http 客户端响应的 URL?

ruby-on-rails - Carrierwave - "uploading"来自字符串的文件

php - Laravel 获取存储在公共(public)文件夹中的文件的公共(public) URL

java - 如何返回和清除列表?

python - 为什么 'return self' 返回 None?

javascript - Laravel Jquery Ui Ajax 发布到 Controller 并为 Blade 获取值(value)