Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Λοιπόν προσπαθώ να ανεβάσω αρχεία στο /var/www/html/data στον localserver με το παρακάτω script

<?php

$target_dir = '/var/www/html/data/';

$target_file  = $target_dir.$_FILES["fileToUpload"]["name"];

try {
    
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
catch (Exception $ex){
    echo $ex->getMessage();
}

Τα permissions του /var/www/data έχουν ως εξής

 

drwxrw-rw-.  3 apache apache 4096 Oct  2 09:42 data

 

 

Η php βγάζει το σφάλμα : failed to open stream: Permission denied

 

Τι δεν πάει καλά ; :unsure:

Δημοσ. (επεξεργασμένο)

Υπάρχει έτοιμο πακέτο στο pear ή στο pecl (fileuploader ή uploader δε θυμάμαι ακριβώς) γιατι δε δοκιμάζεις εκείνο;

Η move_uploaded_file ναι μεν δουλευει αλλά στη πράξη πρέπει να κάνεις πολλούς ελέγχους και ο server να είναι ασφαλής.

Πάντως είναι θέμα δικαιωμάτων ο apache user πρέπει να μπορεί να κάνει cd(άρα πρέπει να έχει execute) στο directory html απο το root dir (/) μέχρι το dir(data?) που θα αποθηκευτεί το τελικό αρχείο.

Σημειώση στο τελικό dir που θα αποθηκευσει πρέπει να έχει και write.

Επεξ/σία από mad-proffessor
Δημοσ.

Υπάρχει έτοιμο πακέτο στο pear ή στο pecl (fileuploader ή uploader δε θυμάμαι ακριβώς) γιατι δε δοκιμάζεις εκείνο;

 

Γιατί, εκείνο δεν κάνει move_uploaded_file?

Δημοσ.

Γιατί, εκείνο δεν κάνει move_uploaded_file?

Έχεις ένα δίκιο απο διδακτικής άποψης, αν είναι το insomnia πεδίο με διδακτικό χαρακτήρα/σκοπό μόνο. 

Σίγουρα να κάτσει να μάθει μόνο καλό θα του κάνει.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...