PHP Dosya Uzantısı ayıklanıyor (resim upload script)

3 Cevap php

Herkes bu sorunun ne olduğunu bana söyleyebilir misiniz? Dosya zaman damgası kullanılarak yeniden adlandırılabilir ancak uzatma ayıklanır ve yeni bir isim yer almaz.

    $filenameext = pathinfo($filename, PATHINFO_EXTENSION);

    $today = getdate();
    $uniqueStr = $today[year];
    $uniqueStr .= $today[mon];
    $uniqueStr .= $today[wday];
    $uniqueStr .= $today[mday];
    $uniqueStr .= $today[hours];
    $uniqueStr .= $today[minutes];
    $uniqueStr .= $today[seconds];

    $filename = $uniqueStr.".".$filenameext;

Tam kodu:

<?php
$folder = 'images/';
$orig_w = 500;

if( isset($_POST['submit']) )
{
	$imageFile = $_FILES['image']['tmp_name'];
	$filenameext = pathinfo($filename, PATHINFO_EXTENSION);

	$today = getdate();
	$uniqueStr = $today[year];
	$uniqueStr .= $today[mon];
	$uniqueStr .= $today[wday];
	$uniqueStr .= $today[mday];
	$uniqueStr .= $today[hours];
	$uniqueStr .= $today[minutes];
	$uniqueStr .= $today[seconds];
	$filename = $uniqueStr.".".$filenameext;

	list($width, $height) = getimagesize($imageFile);

	$src = imagecreatefromjpeg($imageFile);
	$orig_h = ($height/$width)* $orig_w;

	$tmp = imagecreatetruecolor($orig_w, $orig_h);
	imagecopyresampled($tmp, $src, 0,0,0,0,$orig_w,$orig_h,$width,$height);
	imagejpeg($tmp, $folder.$filename,100);

	imagedestroy($tmp);
	imagedestroy($src);

	$filename = urlencode($filename);
	header("Location: crop.php?filename=$filename&height=$orig_h");
}

>

3 Cevap

Bu iyi çalışması gerekir - doğru pathinfo önce $ dosya yazdırabilirsiniz () olabilir?

Kodunuzu yayınlanmıştır sonra düzenleyin: yani bana bu düz başlayalım

$imageFile = $_FILES['image']['tmp_name'];
$filenameext = pathinfo($filename, PATHINFO_EXTENSION);

Sen $ imagefile okunabilir ancak başlatılmamış bir değişken $ dosya ayrıştırmak?

Doğru dosya biçimini tanımlamak için dosya adı uzantısı güvenmiyorum. Ya mime türünü güvenmiyorum.

$sourceFile = $_FILES['photoupload']['tmp_name'];

list($width, $height, $type, $attr) = getimagesize($sourceFile);

$filetype = image_type_to_extension($type, true);
// $filetype includes the dot.
if ('.jpeg' == $filetype) {
    $filetype = '.jpg';  // use jpg, not the 'jpeg' the function would return
}

Pathinfo () Tek istekleri için bir dize döndürmek gerekiyordu iken, genellikle bir dizi dönmek için tanımlanır.

Try this: $filenameext = pathinfo($path)['extension'];

Ancak, "yol" çıkışını giriş var? Eğer onu almak yere bağlı olarak, yükleme üzerinde web sunucusu tarafından oluşturulan geçici bir yol yerine, kullanıcının verilen dosya adı olabilir.