file upload

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
z00t
Δημοσιεύσεις: 13
Εγγραφή: 17 Μαρ 2010 08:46
Επικοινωνία:

file upload

Δημοσίευση από z00t » 18 Μαρ 2010 10:04

Κώδικας: Επιλογή όλων

<?php
// Configuration - Your Options
$allowed_filetypes = array&#40;'.jpg','.gif','.bmp','.png','.psd'&#41;; // These will be the types of file that will pass the validation.
$max_filesize = 10485760; // Maximum filesize in BYTES.
$upload_path = '../uploads'; // The place the files will be uploaded to &#40;currently a 'files' directory&#41;.
$filename = $_FILES&#91;'userfile'&#93;&#91;'name'&#93;; // Get the name of the file &#40;including file extension&#41;.
$ext = substr&#40;$filename, strpos&#40;$filename,'.'&#41;, strlen&#40;$filename&#41;-1&#41;; // Get the extension from the filename.
// Check if the filetype is allowed, if not DIE and inform the user.
if&#40;!in_array&#40;$ext,$allowed_filetypes&#41;&#41;
die&#40;'the file you attempted to upload is not allowed &#58;P.'&#41;;
// Now check the filesize, if it is too large then DIE and inform the user.
if&#40;filesize&#40;$_FILES&#91;'userfile'&#93;&#91;'tmp_name'&#93;&#41; > $max_filesize&#41;
die&#40;'the file you attempted to upload is too large.'&#41;;
// Check if we can upload to the specified path, if not DIE and inform the user.
if&#40;!is_writable&#40;$upload_path&#41;&#41;
die&#40;'you cannot upload to the specified directory, an error is present.'&#41;;
// Upload the file to your specified path.
if&#40;move_uploaded_file&#40;$_FILES&#91;'userfile'&#93;&#91;'tmp_name'&#93;,$upload_path . $filename&#41;&#41;
echo 'your file upload was successful.'; // It worked.
else
echo 'there was an error during the file upload. please try again.'; // It failed &#58;&#40;.
?>

Κώδικας: Επιλογή όλων

<form action="./upload.php" method="post" enctype="multipart/form-data">
<label for="file">select a file.</label> <input type="file" name="userfile" id="file"> <button>upload</button>
</form>

Κώδικας: Επιλογή όλων

$upload_path = '../uploads'; // The place the files will be uploaded to &#40;currently a 'files' directory&#41;.
ερωτήσεις :
1] το upload.php θα μπει στο public_html ώστε να "βλέπει" την φόρμα στο clients.htm ?
2] πως συντάσω το path [ syntax ] ?
3] πως θα του πω να φέρνει τα αρχεία σε συγκεκριμένο dir π.χ.
α] στο public_ftp που είναι έγω από το public_html ? [ προτιμώ εδώ ]
β] στο public_html και να διμηουργήσω dir δλδ. public_html/uploads ?

ευχαριστώ ;)
<null>

sxsweb
Δημοσιεύσεις: 33
Εγγραφή: 14 Δεκ 2009 16:24

file upload

Δημοσίευση από sxsweb » 18 Μαρ 2010 18:37

1) σε οποιονδήποτε κατάλογο μέσα στο document root του web server μπορεί να μπει το upload.php
2) Χρησιμοποίησε το full path (Windows: C:\XXXXX\XXXXX\file Linux: \home\XXXX\XXXX\file). Μπορείς να το βρείς μεσα απο το αντίστοιχο cPanel του hosting σου
3)
α) Αν ο public_ftp είναι μέσα στο document_root μπορεί να γίνει μέσω της move_uploaded_file()
Διαφορετικά αν η εταιρεία hosting που χρησιμοποιείς επιτρέπει την εκτέλεση της συνάρτησης copy().
Αρχικά θα γίνει upload το αρχείο σε προσωρινό κατάλογο
μετά χρήση της copy() για μεταφορά του αρχείου και χρήση της unlink() για διαγραφή
του προσωρινού αρχείου.
Για να λειτουργήσει πρέπει να τεθεί σωστά το working path
Eναλλακτικά μπορεί να χρησιμοποιηθεί και η συνάρτηση rename()

Copy()

Rename()

Unlink()

chdir()

β)Δημιουργία καταλόγου με την συνάρτηση mkdir() και στην συνέχεια χρήση της
move_uploaded_file()

mkdir()
rmdir()

Kung Lao
Δημοσιεύσεις: 4
Εγγραφή: 23 Σεπ 2011 09:13
Επικοινωνία:

file upload

Δημοσίευση από Kung Lao » 23 Σεπ 2011 09:25

Έψαχνα έναν τρόπο να γίνεται image preview καθαρά client side πριν απο κάποιο ενδεχόμενο upload στο server. Ο τρόπος που κυκλοφορεί πολύ στον ιστό είναι αυτός http://jsbin.com/uboqu3/edit#javascript,html,live Προσπάθησα να κάνω preview την φωτογραφία όχι μέσα <img tag.. αλλά σαν background image κάποιου DIV. Δοκίμασα με jquery css selectors και μέσα στον selector να μπει το e.target.result αλλά τζίφος.. Εχει κανείς καμιά ιδέα???????

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

file upload

Δημοσίευση από gvre » 23 Σεπ 2011 11:22

@z00t Χρησιμοποίησε την strrpos ή ακόμα καλύτερα την pathinfo, για να πάρεις το extension του αρχείου. Η strpos θα σταματήσει στην πρώτη τελεία, οπότε θα έχεις λάθος extension σε περιπτώσεις ονομάτων με περισσότερες από μια τελείες (πχ foo.bar.doc)

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες