Hướng dẫn php save image to file - php lưu hình ảnh vào tệp

Lưu ý: Bạn nên sử dụng câu trả lời được chấp nhận nếu có thể. Nó tốt hơn của tôi.

Nó khá dễ dàng với thư viện GD.

Nó thường được tích hợp, bạn có thể có nó (sử dụng phpinfo() để kiểm tra)

$image = imagecreatefromjpeg("http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com");

imagejpeg($image, "folder/file.jpg");

Câu trả lời trên là tốt hơn (nhanh hơn) cho hầu hết các tình huống, nhưng với GD, bạn cũng có thể sửa đổi nó dưới một hình thức nào đó (ví dụ như cắt xén).

$image = imagecreatefromjpeg("http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com");
imagecopy($image, $image, 0, 140, 0, 0, imagesx($image), imagesy($image));
imagejpeg($image, "folder/file.jpg");

Điều này chỉ hoạt động nếu allow_url_fopentrue (theo mặc định)

Lưu hình ảnh từ URL rất hữu ích khi bạn muốn sao chép hình ảnh một cách linh hoạt từ máy chủ từ xa và lưu trữ trong máy chủ cục bộ. File_Get_Contents () và File_put_contents () cung cấp một cách dễ nhất để lưu hình ảnh từ xa vào máy chủ cục bộ bằng PHP. Tệp hình ảnh có thể được lưu thẳng vào thư mục từ URL. Trong đoạn mã ví dụ, chúng tôi sẽ cung cấp hai cách để lưu hình ảnh từ URL bằng PHP.save image from URL using PHP.

Lưu hình ảnh từ URL bằng PHP

Đoạn mã sau giúp bạn sao chép tệp hình ảnh từ URL từ xa và lưu trong thư mục bằng PHP.

  • File_Get_Contents () - Hàm này được sử dụng để đọc tệp hình ảnh từ URL và trả về nội dung dưới dạng chuỗi. – This function is used to read the image file from URL and return the content as a string.
  • file_put_contents () - Hàm này được sử dụng để ghi dữ liệu hình ảnh từ xa vào một tệp. – This function is used to write remote image data to a file.
// Remote image URL
$url 'http://www.example.com/remote-image.png';// Image path
$img 'images/codexworld.png';// Save image 
file_put_contents($imgfile_get_contents($url));

Lưu hình ảnh từ URL bằng Curl

Bạn có thể sử dụng Curl để lưu hình ảnh từ URL bằng PHP. Đoạn mã sau giúp bạn sao chép tệp hình ảnh từ URL bằng Curl trong PHP.

// Remote image URL
$url 'http://www.example.com/remote-image.png';// Image path
$img 'images/codexworld.png';// Save image
$ch curl_init($url);
$fp fopen($img'wb');
curl_setopt($chCURLOPT_FILE$fp);
curl_setopt($chCURLOPT_HEADER0);
curl_exec($ch);
curl_close($ch);
fclose($fp);


Với PHP, thật dễ dàng để tải các tệp lên máy chủ.

Tuy nhiên, một cách dễ dàng đến nguy hiểm, vì vậy hãy luôn cẩn thận khi cho phép tải lên tệp!


Định cấu hình tệp "php.ini"

Đầu tiên, đảm bảo rằng PHP được cấu hình để cho phép tải lên tệp.

Trong tệp "php.ini" của bạn, tìm kiếm chỉ thị file_uploads và đặt nó thành BẬT:


Tạo biểu mẫu HTML

Tiếp theo, hãy tạo biểu mẫu HTML cho phép người dùng chọn tệp hình ảnh họ muốn tải lên:



// Kiểm tra xem tệp hình ảnh có phải là hình ảnh thực tế hoặc hình ảnh giả (isset ($ _ post ["Gửi"])) ; & nbsp; if ($ kiểm tra! == false) {& nbsp; & nbsp; & nbsp; Echo "Tệp là một hình ảnh -". $ Kiểm tra ["MIME"]. "."; & nbsp; & nbsp; & nbsp; $ uploadOK = 1; & nbsp; & nbsp;} other {& nbsp; & nbsp; & nbsp; echo "Tệp không phải là một hình ảnh."; & nbsp; & nbsp; & nbsp; $ uploadok = 0; & nbsp; & nbsp;}}
  Select image to upload:
  
 


// Kiểm tra xem tệp hình ảnh có phải là hình ảnh thực tế hoặc hình ảnh giả (isset ($ _ post ["Gửi"])) ; & nbsp; if ($ kiểm tra! == false) {& nbsp; & nbsp; & nbsp; Echo "Tệp là một hình ảnh -". $ Kiểm tra ["MIME"]. "."; & nbsp; & nbsp; & nbsp; $ uploadOK = 1; & nbsp; & nbsp;} other {& nbsp; & nbsp; & nbsp; echo "Tệp không phải là một hình ảnh."; & nbsp; & nbsp; & nbsp; $ uploadok = 0; & nbsp; & nbsp;}}

  • // kiểm tra xem tệp đã tồn tại (file_exists ($ target_file)) {& nbsp; echo "Xin lỗi, tệp đã tồn tại."; & nbsp; & nbsp; $ uploadok = 0;}
  • // Kiểm tra tệp Sizeif ($ _files ["Filetoupload"] ["size"]> 500000) {& nbsp; & nbsp; echo "Xin lỗi, tệp của bạn quá lớn."; & Nbsp; }

// Cho phép một số định dạng tệp nhất định ($ ImageFileType! = "Jpg" && $ ImageFileType! , Các tệp jpeg, png & gif được cho phép. "; & Nbsp; & nbsp; $ uploadok = 0;}

// Kiểm tra xem $ uploadok được đặt thành 0 bởi một lỗi ($ uploadok == 0) {& nbsp; & nbsp; echo "Xin lỗi, tệp của bạn không được tải lên."; {& nbsp; if (move_uploaded_file ($ _ files ["filetoupload"] ["tmp_name"], $ target_file)) {& nbsp; & nbsp; & nbsp; Echo "The File". htmlspecialchars (basename ($ _files ["filetoupload"] ["name"])). " Đã được tải lên."; & nbsp; } other {& nbsp; & nbsp; & nbsp; echo "Xin lỗi, đã có một lỗi khi tải lên tệp của bạn."; & nbsp; & nbsp;}}?>

  • Hoàn thành tham chiếu hệ thống tập tin PHP

Để tham khảo đầy đủ các chức năng hệ thống tập tin, hãy truy cập tham chiếu hệ thống tập tin PHP hoàn chỉnh của chúng tôi.



Làm cách nào để tải hình ảnh từ PHP?

Lưu hình ảnh từ URL bằng PHP.

File_Get_Contents () - Hàm này được sử dụng để đọc tệp hình ảnh từ URL và trả về nội dung dưới dạng chuỗi ..
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}
?>

file_put_contents () - Hàm này được sử dụng để ghi dữ liệu hình ảnh từ xa vào một tệp ..

  • Làm cách nào để lưu trữ hình ảnh trong phpmyadmin?
  • Tệp PHP chứa các chức năng sau ..
  • Kiểm tra xem người dùng chọn tệp hình ảnh để tải lên ..
  • Truy xuất nội dung của tệp hình ảnh bằng TMP_NAME ..
  • Tạo kết nối với cơ sở dữ liệu MySQL và chọn cơ sở dữ liệu ..

Chèn nội dung nhị phân của hình ảnh trong bảng hình ảnh .. You will need to create a new directory called "uploads" in the directory where "upload.php" file resides. The uploaded files will be saved there.


Kiểm tra xem tệp đã tồn tại chưa

Bây giờ chúng ta có thể thêm một số hạn chế.

Đầu tiên, chúng tôi sẽ kiểm tra xem tệp đã tồn tại trong thư mục "Tải lên". Nếu có, một thông báo lỗi được hiển thị và $ uploadok được đặt thành 0:

// kiểm tra xem tệp đã tồn tại (file_exists ($ target_file)) {& nbsp; echo "Xin lỗi, tập tin đã tồn tại."; & nbsp; $ uploadok = 0; }
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}


Giới hạn kích thước tệp

Trường đầu vào tệp trong biểu mẫu HTML của chúng tôi ở trên được đặt tên là "Filetoupload".

Bây giờ, chúng tôi muốn kiểm tra kích thước của tệp. Nếu tệp lớn hơn 500kb, một thông báo lỗi sẽ được hiển thị và $ uploadok được đặt thành 0:

// Kiểm tra tệp Sizeif ($ _files ["Filetoupload"] ["size"]> 500000) {& nbsp; echo "Xin lỗi, tập tin của bạn quá lớn."; & nbsp; $ uploadok = 0; }
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}


Giới hạn loại tệp

Mã bên dưới chỉ cho phép người dùng tải lên các tệp JPG, JPEG, PNG và GIF. Tất cả các loại tệp khác đều cung cấp thông báo lỗi trước khi đặt $ tải lên 0:

// Cho phép một số định dạng tệp nhất định ($ ImageFileType! = "Jpg" && $ ImageFileType! , Các tệp jpeg, png & gif được cho phép. "; & Nbsp; & nbsp; $ uploadok = 0;}
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}


Hoàn thành Tải lên Tập lệnh Php

Tệp hoàn chỉnh "upload.php" bây giờ trông như thế này:

$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Kiểm tra xem tệp hình ảnh có phải là hình ảnh thực tế hoặc hình ảnh giả (isset ($ _ post ["Gửi"])) ; & nbsp; if ($ kiểm tra! == false) {& nbsp; & nbsp; & nbsp; Echo "Tệp là một hình ảnh -". $ Kiểm tra ["MIME"]. "."; & nbsp; & nbsp; & nbsp; $ uploadOK = 1; & nbsp; & nbsp;} other {& nbsp; & nbsp; & nbsp; echo "Tệp không phải là một hình ảnh."; & nbsp; & nbsp; & nbsp; $ uploadok = 0; & nbsp; & nbsp;}}
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// kiểm tra xem tệp đã tồn tại (file_exists ($ target_file)) {& nbsp; echo "Xin lỗi, tệp đã tồn tại."; & nbsp; & nbsp; $ uploadok = 0;}
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// Kiểm tra tệp Sizeif ($ _files ["Filetoupload"] ["size"]> 500000) {& nbsp; & nbsp; echo "Xin lỗi, tệp của bạn quá lớn."; & Nbsp; }
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// Cho phép một số định dạng tệp nhất định ($ ImageFileType! = "Jpg" && $ ImageFileType! , Các tệp jpeg, png & gif được cho phép. "; & Nbsp; & nbsp; $ uploadok = 0;}
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Kiểm tra xem $ uploadok được đặt thành 0 bởi một lỗi ($ uploadok == 0) {& nbsp; & nbsp; echo "Xin lỗi, tệp của bạn không được tải lên."; {& nbsp; if (move_uploaded_file ($ _ files ["filetoupload"] ["tmp_name"], $ target_file)) {& nbsp; & nbsp; & nbsp; Echo "The File". htmlspecialchars (basename ($ _files ["filetoupload"] ["name"])). " Đã được tải lên."; & nbsp; } other {& nbsp; & nbsp; & nbsp; echo "Xin lỗi, đã có một lỗi khi tải lên tệp của bạn."; & nbsp; & nbsp;}}?>
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>


Hoàn thành tham chiếu hệ thống tập tin PHP

Để tham khảo đầy đủ các chức năng hệ thống tập tin, hãy truy cập tham chiếu hệ thống tập tin PHP hoàn chỉnh của chúng tôi.



Làm cách nào để tải hình ảnh từ PHP?

Lưu hình ảnh từ URL bằng PHP..
File_Get_Contents () - Hàm này được sử dụng để đọc tệp hình ảnh từ URL và trả về nội dung dưới dạng chuỗi ..
file_put_contents () - Hàm này được sử dụng để ghi dữ liệu hình ảnh từ xa vào một tệp ..

Làm cách nào để lưu trữ hình ảnh trong phpmyadmin?

Tệp PHP chứa các chức năng sau ...
Kiểm tra xem người dùng chọn tệp hình ảnh để tải lên ..
Truy xuất nội dung của tệp hình ảnh bằng TMP_NAME ..
Tạo kết nối với cơ sở dữ liệu MySQL và chọn cơ sở dữ liệu ..
Chèn nội dung nhị phân của hình ảnh trong bảng hình ảnh ..

TMP_NAME trong Tải lên tệp PHP là gì?

TMP_NAME là tên tạm thời của tệp được tải lên được tạo tự động bởi PHP và được lưu trữ trên thư mục tạm thời trên máy chủ.temporary name of the uploaded file which is generated automatically by php, and stored on the temporary folder on the server.

ImageJpeg là gì?

ImageJpeg () tạo một tệp jpeg từ hình ảnh đã cho.creates a JPEG file from the given image .