後にPHPで画像のサイズを変更すると、誰もが、私は次の問題を解決できる方法を教えてもらえます:のfile_get_contents
include('php/resizeImage.php');
if($_POST['uploadlink']){
$url = $_POST['uploadlink'];
$urlImage = file_get_contents($url);
if ($_POST['filename']){
$filename = $_POST['filename'].".jpg";
} else {
$urlinfo = parse_url($url);
$filename = basename($urlinfo['path']);
}
$image = new ResizeImage();
$image->load($filename);
$image->resizeToWidth(300);
$image->save($filename);
file_put_contents("images/upload/".$filename, $urlImage);
}
私は私resizeImageスクリプトそこを通ってサイズを変更したいURLからのfile_get_contentsから画像データを受信した後画像のファイル名をパラメータとして取ります。
編集:ResizeImage機能の負荷とresizeToWidth:
function load($filename) {
$image_info = getimagesize($filename);
$this->image_type = $image_info[2];
if($this->image_type == IMAGETYPE_JPEG) {
$this->image = imagecreatefromjpeg($filename);
} elseif($this->image_type == IMAGETYPE_GIF) {
$this->image = imagecreatefromgif($filename);
} elseif($this->image_type == IMAGETYPE_PNG) {
$this->image = imagecreatefrompng($filename);
}
}
function resizeToWidth($width) {
$ratio = $width/$this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}
、ユーザが入力タイプ=「ファイル」を介してローカルの画像を選択したとき、私は何の問題それをやってを持っていません。
if (isset($_FILES["uploadedfile"])){
$ufilename = $_FILES["uploadedfile"]["name"];
$ufiletmpname = $_FILES["uploadedfile"]["tmp_name"];
$image = new ResizeImage();
$image->load($ufiletmpname);
$image->resizeToWidth(300);
$image->save($ufiletmpname);
}
もう一つの問題: 私は、ユーザーごとに個別のフォルダを作成したいので、私は私のスクリプトにユーザーの名前を転送するので、彼らは唯一、自分のアップロードした画像を見ることができます。
$admin = $_GET['admin'];
file_put_contents("images/upload/".$admin."/".$filename, $urlImage);
なぜ私にとってはうまくいかないのですか?
ありがとうございました。
私はそれを試みます。ありがとう。 ResizeImageは "私自身の"クラスです。私は、元のmsg –
にloadとresizeToWidth関数を挿入しましたが動作しません。私はimagecreatefromstringを作成した後にイメージのサイズを変更できますが、$ imageをパラメータとしてfile_put_contentsを使用することはできません。 –
'file_put_contents()'を使う必要はありません。代わりに、 'imagepng($ image、$ filename);を使用してください。また、この拡張モジュールのPHPドキュメントを読むべきです... – Christian