[ squirll @ 07.08.2010. 01:12 ] @
Ne znam gde ovu temu da stavim jer ne znam sta je problem...

Uglavnom prema prici vlasnika sajta...problem se preko noci desio...

Sajt sadrzi 3-4 razlicite forme za upload fajlova... Koju god forrmu da koristis i kliknes na submit btn stranica se ucita ponovo (ko da opalish refresh F5)
E to obicno biva kad submit btn nije dobro postavljen ali u ovom slucaju jeste...(isti 100% isti kod radi na drugom serveru/sajtu)
Onda ja stavim jedanu prostu upload formu da proverim jos jedanput da nije do koda

Code:

<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" id="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>


i u php

Code:

<?php
echo 'Script Path: ' . $_SERVER['SCRIPT_NAME'] . '<br/>Absolute Path: ' . $_SERVER['SCRIPT_FILENAME'] . '<br/>';
class UploadException extends Exception 

    public function __construct($code) { 
        $message = $this->codeToMessage($code); 
        parent::__construct($message, $code); 
    } 

    private function codeToMessage($code) 
    { 
        switch ($code) { 
            case UPLOAD_ERR_INI_SIZE: 
                $message = "The uploaded file exceeds the upload_max_filesize directive in php.ini"; 
                break; 
            case UPLOAD_ERR_FORM_SIZE: 
                $message = "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"; 
                break; 
            case UPLOAD_ERR_PARTIAL: 
                $message = "The uploaded file was only partially uploaded"; 
                break; 
            case UPLOAD_ERR_NO_FILE: 
                $message = "No file was uploaded"; 
                break; 
            case UPLOAD_ERR_NO_TMP_DIR: 
                $message = "Missing a temporary folder"; 
                break; 
            case UPLOAD_ERR_CANT_WRITE: 
                $message = "Failed to write file to disk"; 
                break; 
            case UPLOAD_ERR_EXTENSION: 
                $message = "File upload stopped by extension"; 
                break; 

            default: 
                $message = "Unknown upload error"; 
                break; 
        } 
        return $message; 
    } 
}


$target_path = "/uploads/";

$target_path = $_FILES['uploadedfile']['name']; 
echo $target_path;
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
    echo "<br/>";
   throw new UploadException($_FILES['file']['error']);
}

?>

Napominjem jos jedno ovo je samo kod za testiranje (nema security check iz razloga da bude sto prostije da mogu naci gde je problem)

Medjutim ni ovaj kod ne radi... Tj ne uploduje fajlove... Dobije default msg "Unknown upload error"
Citam po netu, kazu ljudi php.ini i parametri ...
Ja proverim a oni su sledeci
600MB (max_upload_filesize)
600MB (max_post_size)
safe_mode off
open_basedir off
max_execution_time 7200
max_input_time 7200
memory_limit 256mb
PHP Version 5.2.4
Apache Handler
Cini se ok ..

Temp direktorijumi imaju 777chmod i chown je za tog usera koji i treba tj za kojim php upravlja... znaci nije ni do premisija...
Mesta na hardu ima znaci nije ni to problem (preko 100gb praznog)

Ja ideja vise nemam...
Inace nece nikakva fajl da uploduje.. ni 35kb "velik" ni gif,jpg,mp3 ...nista nista nista...prazno...
Putanja /uploads/ je ok ..nije ni to problem....


Sta moze biti ? Vec 4 dana se sa ovim zezam i muka mi ga je...
[ Goran Rakić @ 08.08.2010. 04:00 ] @
Zar ne treba ./uploads ili uploads/ (bilo tačka ili bez prve kose crte) kako bi putanja bila relativna u odnosu na radni direktorijum? Tvoja putanja očekuje direktorijum u korenskom direktorijumu servera.

Uključi upozorenja (pomoću error_reporting(E_ALL)) i proveri da li je vrednost greške UPLOAD_ERR_OK što znači da je otpremanje datoteke uspešno, ali problem nastaje kod premeštanja.
[ Nikola Poša @ 08.08.2010. 10:40 ] @
Citat:
squirll: Putanja /uploads/ je ok ..nije ni to problem....

Pa i da je ta putanja ok, ti u sledećoj liniji kôda, nakon te gde inicijalizuješ tu promenljivu $target_path ($target_path = "/uploads/";), u nju upisuješ $_FILES['uploadedfile']['name']. Da nisi možda hteo da na tu putanju nadovežeš ime fajla? Onda ti fali samo jedna tačka pre znaka "=", ovako:
Code:
$target_path .= $_FILES['uploadedfile']['name'];
[ squirll @ 16.08.2010. 18:37 ] @
nema ovo veze sa phpom ...
ima greske u tom kodu al nije do toga...
Novi Plesk ima bug ukljucuje oepnbase_dir ...to je problem ..moze lock..i brisati temu...