سؤال

لدي نموذج HTML كما يلي:

<form id="addTrack" action="/worship/script/upload.php" method="post" enctype="multipart/form-data">
    <label>File:</label>
    <input type="file" name="uploaded" id="addTrackFile"/>
    <label>Key Title: </label>
    <input type="text" name="title" id="addTrackTitle"/>
    <input type="hidden" name="id" id="addTrackId"/><br>
</form>
<button onclick="uploadAddTrack()">Upload</button>
<button onclick="closeAddTrack()">Close</button>

عندما أقوم بإرسال النموذج، يتم تحميل الملف إلى الخادم بشكل صحيح، ولكن عندما تتم إعادة توجيهه إلى البرنامج النصي لإجراء PHP، يتم إيقافه عند اكتشاف الخطأ الأول.ثم يتخلص البرنامج النصي من ملف $_FILES المتغير الذي يعود كمصفوفة فارغة.كما ترون في الكود أدناه، لدي أيضًا صدى للخطأ، ولكنه أيضًا يردد سلسلة فارغة.

لماذا لا أحصل على ملف في $_FILES مجموعة مصفوفة؟

كود PHP الخاص بي:

$id=$_POST["id"];
$name=$_POST["title"];

$name = str_replace(" ","",$name);

$allowed_filetypes = array('.mp3','.m4a','.wav','.wma');

$filename = $_FILES['uploaded']['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);

$target = "../audio/"; 
$target = $target . $id. "_".$name.$ext; 
$ok=1; 

if ($_FILES['uploaded']['error'] !== UPLOAD_ERR_OK) {
    //------------This is where it gets stopped-----------------//

        var_dump($_FILES);
    echo $_FILES["uploaded"]["error"];
    return;
}

if(!in_array($ext,$allowed_filetypes))
die("This file type is not allowed");

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
{
include("updateDB.php");

header("Location:/worship/cpanel/?autoload=$id");
} 

حجم الملف الذي أقوم بتحميله هو 9 ميجابايت.

معلوماتي ذات الصلة بـ php.ini

تحميلات الملف:على

upload_max_filesize:25 م

تحميل_tmp_dir:لا قيمة

max_post_size:8 م

هل كانت مفيدة؟

المحلول

تحقق من ملف PHP.ini الخاص بك.تأكد من أن حجم البريد أكبر من 8M.لأن هذا هو الإعداد الافتراضي وأنت ترسل معلومات بحجم 9 ميغابايت.

 `; Maximum size of POST data that PHP will accept.

post_max_size = 8M`
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top