Resim upload PHP

6 Cevap

İşte benim kod;

<?php

 define ("MAX_SIZE","500"); 

 function getExtension($str) {
         $i = strrpos($str,".");
         if (!$i) { return ""; }
         $l = strlen($str) - $i;
         $ext = substr($str,$i+1,$l);
         return $ext;
 }

 $errors=0;
 if(isset($_POST['Submit'])) 
 {

    $image=$_FILES['image']['name'];
    if ($image) 
    {
    	$filename = stripslashes($_FILES['image']['name']);

    	$extension = getExtension($filename);
    	$extension = strtolower($extension);

 if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
    	{
    	//print error message
    		echo '<h1>Unknown extension!</h1>';
    		$errors=1;
    	}
    	else
    	{

 $size=filesize($_FILES['image']['tmp_name']);

if ($size > MAX_SIZE*1024)
{
    echo '<h1>You have exceeded the size limit!</h1>';
    $errors=1;
}

$image_name=time().'.'.$extension;
$newname="user_img/".$image_name;
$copied = copy($_FILES['image']['tmp_name'], $newname);
if (!$copied) 
{
    echo '<h1>Copy unsuccessful!</h1>';
    $errors=1;
}}}}

 if(isset($_POST['Submit']) && !$errors) 
 {
    echo "<h1>File Uploaded Successfully! Try again!</h1>";
 }

>

This is working fine at my localhost but when i uploaded it on server it wont works at all and not showing any error as well just showing message of unsuccessful. Whats could be the problem and solution Thanks

6 Cevap

prolly size uygun izinleri almak için için karşıya chmod klasörüne gerekir

Sen FileZilla ile çok kolay yapabilirsiniz.

Lütfen script host olarak çalışan kullanıcı user_img dizine yazma izni olup olmadığını kontrol edin.

Çeşitli sorunlar olabilir:

Bu emin php size görüntüleri yazılı dizinde üzerinde çalışan kullanıcı için yeterli izinlere sahip olun, büyük olasılıkla bir izinleri hatadır. Başka bir olasılık php.ini dosyasında ayarlanan maksimum POST boyutunu aşan olmasıdır.

Ayrıca klasörüne gerçek göreli yolu ile ilgili herhangi bir sorunları hafifletmek edeceğini user_img klasörün mutlak yolunu kullanmayı düşünebilirsiniz:

$newname="user_img/".$image_name;

anahtarlar için:

$newname="/path/to/www/user_img/".$image_name;

Apart dosya izni denetlemesini:

  1. Ben her zaman) yerine kopya daha move_uploaded_file () (kullandım
  2. . Sizin hedef dosya "user_img /" $ image_name - konumdur göreceli dizin sunucu üzerinde geçerli olarak localhost mi? Sen tam yolu dönüştürmek isteyebilirsiniz