Ниже приведен мой код для загрузки изображений в папку на PHP.
if(isset($_GET['id']))
{
$id= $_GET['id'];
$folder = 'uploads/';
$filename = $id.'.jpg';$uploaddir = './uploads/';
// create new directory with 744 permissions if it does not exist yet
// owner will be the user/group the PHP script is run under
if ( !file_exists($folder) ) {
mkdir ($folder, 0744);
}
$data = $_POST['base64data'];
$type = '';
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
$file_path = $folder.$filename;
echo $_POST['base64data'];
file_put_contents($file_path, $data);
}
Но как изменить размер загруженных картинок до нужного мне размера?
Я нашел функцию PHP, но я не уверен, как реализовать ее в моем коде … Это imagecopyresampled
:
// Le fichier
$filename = 'test.jpg';
// Définition de la largeur et de la hauteur maximale
$width = 200;
$height = 200;
// Content type
header('Content-Type: image/jpeg');
// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($filename);
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Affichage
imagejpeg($image_p, null, 100);
Я думаю, что вы должны сделать это:
if(isset($_GET['id']))
{
/*put the code which resize your image here*/
$id= $_GET['id'];
$folder = 'uploads/';
$filename = $id.'.jpg';$uploaddir = './uploads/';
// create new directory with 744 permissions if it does not exist yet
// owner will be the user/group the PHP script is run under
if ( !file_exists($folder) ) {
mkdir ($folder, 0744);
}
$data = $_POST['base64data'];
$type = '';
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
$file_path = $folder.$filename;
echo $_POST['base64data'];
file_put_contents($file_path, $data);
}
и в комментарии после того, как вы используете imagecopyresampled для изменения размера вашего изображения (попробуйте его с локальным изображением), вы должны получить тип контента и после этого выполнить остальную часть сценария imagecopyresampled.
или вы можете сделать это: проверить это:
**Resize images with PHP**<?php
if ($_FILES['fileToUpload']['error'] > 0) {
echo "Error: " . $_FILES['fileToUpload']['error'] . "<br />";
} else {
// array of valid extensions
$validExtensions = array('.jpg', '.jpeg', '.gif', '.png');
// get extension of the uploaded file
$fileExtension = strrchr($_FILES['fileToUpload']['name'], ".");
// check if file Extension is on the list of allowed ones
if (in_array($fileExtension, $validExtensions)) {
$newNamePrefix = time() . '_';
$manipulator = new ImageManipulator($_FILES['fileToUpload']['tmp_name']);
// resizing to 200x200
$newImage = $manipulator->resample(200, 200);
// saving file to uploads folder
$manipulator->save('uploads/' . $newNamePrefix . $_FILES['fileToUpload']['name']);
echo 'Done ...';
} else {
echo 'You must upload an image...';
}
}
**Crop images with PHP**
if ($_FILES['fileToUpload']['error'] > 0) {
echo "Error: " . $_FILES['fileToUpload']['error'] . "<br />";
} else {
// array of valid extensions
$validExtensions = array('.jpg', '.jpeg', '.gif', '.png');
// get extension of the uploaded file
$fileExtension = strrchr($_FILES['fileToUpload']['name'], ".");
// check if file Extension is on the list of allowed ones
if (in_array($fileExtension, $validExtensions)) {
$newNamePrefix = time() . '_';
$manipulator = new ImageManipulator($_FILES['fileToUpload']['tmp_name']);
$width = $manipulator->getWidth();
$height = $manipulator->getHeight();
$centreX = round($width / 2);
$centreY = round($height / 2);
// our dimensions will be 200x130
$x1 = $centreX - 100; // 200 / 2
$y1 = $centreY - 65; // 130 / 2
$x2 = $centreX + 100; // 200 / 2
$y2 = $centreY + 65; // 130 / 2
// center cropping to 200x130
$newImage = $manipulator->crop($x1, $y1, $x2, $y2);
// saving file to uploads folder
$manipulator->save('uploads/' . $newNamePrefix . $_FILES['fileToUpload']['name']);
echo 'Done ...';
} else {
echo 'You must upload an image...';
}
}