Heim  >  Artikel  >  Backend-Entwicklung  >  PHP传统文件上传和Base64位文件上传

PHP传统文件上传和Base64位文件上传

WBOY
WBOYOriginal
2016-07-25 08:42:191857Durchsuche

一、基本知识

通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。

第一个参数是表单的 input name,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:

$_FILES["file"]["name"] - 被上传文件的名称

$_FILES["file"]["type"] - 被上传文件的类型

$_FILES["file"]["size"] - 被上传文件的大小,以字节计

$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称

$_FILES["file"]["error"] - 由文件上传导致的错误代码

这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。

二、常用上传

  1. if ((($_FILES["file"]["type"] == "image/gif")
  2. || ($_FILES["file"]["type"] == "image/jpeg")
  3. || ($_FILES["file"]["type"] == "image/pjpeg"))
  4. && ($_FILES["file"]["size"] {
  5. if ($_FILES["file"]["error"] > 0)
  6. {
  7. echo "Return Code: " . $_FILES["file"]["error"] . "
    ";
  8. }
  9. else
  10. {
  11. echo "Upload: " . $_FILES["file"]["name"] . "
    ";
  12. echo "Type: " . $_FILES["file"]["type"] . "
    ";
  13. echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
    ";
  14. echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
    ";
  15. if (file_exists("upload/" . $_FILES["file"]["name"]))
  16. {
  17. echo $_FILES["file"]["name"] . " already exists. ";
  18. }
  19. else
  20. {
  21. move_uploaded_file($_FILES["file"]["tmp_name"],
  22. "upload/" . $_FILES["file"]["name"]);
  23. echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  24. }
  25. }
  26. }
  27. else
  28. {
  29. echo "Invalid file";
  30. }
  31. ?>

复制代码

三、php读取和保存base64编码的图片内容

  1. if($_POST['submit']){
  2. $image_info = getimagesize($_FILES['file']['tmp_name']);//$_FILES['file']['tmp_name']即文件路径
  3. $base64_image_content = "data:{$image_info['mime']};base64," . chunk_split(base64_encode(file_get_contents($_FILES['file']['tmp_name'])));
  4. echo $base64_image_content;die;
  5. if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
  6. $type = $result[2];
  7. $new_file = "./test.{$type}";
  8. if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
  9. echo '新文件保存成功:', $new_file;
  10. }
  11. }
  12. }
  13. ?>

复制代码


文件上传, PHP


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn