העלאת קבצים PHP
-
@chagold אמר בהעלאת קבצים PHP:
או לעשות פונקציה שתיצור את התיקיה בשרת ושתעלה קובץ קובץ.
זה המועדפת...
אבל כרגע ראיתי שיש הגבלה על כמות הקבצים של 20 בכל נגלה...
הגדרתי ב php.ini בשורה
max_file_uploads=200
אבל זה לא פתר את הבעיה... עריכה: זה פתר את הבעיה, אבל לקח לזה קצת זמן להתעדכן... -
-
@אביי זה עושה זיפ למקרה של קבצים מרובים:
<?php $dir = $_SERVER['DOCUMENT_ROOT'] . "\\uploads\\"; $url = '/uploads/'; if (count($_FILES['upload']['name']) == 1) { $fileName = $_FILES['upload']['name'][0]; $tmpFilePath = $_FILES['upload']['tmp_name'][0]; $err = $_FILES['upload']['error'][0]; echo "<div> קובץ: $fileName"; if ($err != 0) { echo "שגיאה בשליחת הקובץ לשרת, קוד שגיאה: $err"; } else { if (move_uploaded_file($tmpFilePath, $dir . $fileName)) { echo " היי, הקובץ הועלה בהצלחה!! <br /> :קח מכאן את הקישור הישיר לקובץ <a href='{$url}{$fileName}'>$fileName<a/> "; } else { echo 'שגיאה בהעברת הקובץ מתיקיית הקבצים הזמניים בשרת למיקום הסופי.'; } } echo "</div>"; } else { $zipname = $_FILES['upload']['name'][0].'.zip'; $zip = new ZipArchive; $zip->open($dir . $zipname, ZipArchive::CREATE); for ($i = 0; $i < count($_FILES['upload']['name']); $i++) { $fileName = $_FILES['upload']['name'][$i]; $tmpFilePath = $_FILES['upload']['tmp_name'][$i]; $err = $_FILES['upload']['error'][$i]; if ($err != 0) { echo "שגיאה בשליחת הקובץ לשרת, קוד שגיאה: $err"; } else { if (!$zip->addFile($tmpFilePath, $fileName)) { echo 'שגיאה בהעברת הקובץ מתיקיית הקבצים הזמניים בשרת למיקום הסופי.'; } } } $zip->close(); echo "<a href='{$url}{$zipname}'>$zipname<a/>"; }