كيف أقوم بتحميل نموذج HTML باسم مستخدم وكلمة مرور وتحميل ملفات متعددة ثم معالجته باستخدام PHP؟
سؤال
كيفية نشر اسم مستخدم وكلمة مرور وملفات ثنائية متعددة من نموذج html واحد ومعالجتها باستخدام php؟لا يسمح لي باستخدام اياكس.
المحلول
أولاً قم بمراجعة هذه الصفحات على PHP.net
ولكن لتبدأ، إليك بعض الملفات الأساسية.
uploadForm.html
<html>
<body>
<form action="processStuff.php" enctype="multipart/form-data" method="POST">
username: <input type="text" name="username" />
password: <input type="password" name="password" />
<p>
<input type="file" name="uploadFile[]" /><br />
<input type="file" name="uploadFile[]" /><br />
<input type="file" name="uploadFile[]" /><br />
<!-- Add as many of these as you want -->
</p>
<p>
<input type="submit" />
</p>
</form>
</body>
</html>
ProcessStuff.php
<pre>
<?php
echo '<h2>Username & password</h2>'
echo "Username: {$_POST['username']}\nPassword: {$_POST['password']}";
echo '<hr />';
echo '<h2>Uploaded files</h2>'
foreach($_FILES['uploadFile']['tmp_name'] as $i => $tempUploadPath) {
if (empty($tempUploadPath)) {
// this <input type="file" /> was "blank"... no file selected
} else {
// a file was uploaded
echo '<strong>A file named "', $_FILES['uploadFile']['name'][$i], "\" was uploaded</strong>\n";
echo "\ttemporarily stored at: ", $tempUploadPath, "\n";
echo "\tmime type: ", $_FILES['uploadFile']['type'][$i], "\n";
echo "\tsize: ", $_FILES['uploadFile']['size'][$i], " bytes\n";
echo "\terror code",
((empty($_FILES['uploadFile']['size'][$i])
? '<em>no errror</em>'
: $_FILES['uploadFile']['size'][$i])),
"\n\n";
// do something useful with the uploaded file
// access it via $tempUploadPath and use move_uploaded_file() to move
// it out of the temp path before you manipulate it in any way!!!!!
// see http://us3.php.net/features.file-upload
// and http://us3.php.net/manual/en/function.move-uploaded-file.php
}
}
?>
</pre>
يوضح ملف HTML كيفية ضبط enctype
التابع <form>
ويوضح لك النموذج الثاني كيفية الوصول إلى اسم المستخدم وكلمة المرور المقدمين وأخيرًا كيفية تكرار كل ملف تم تحميله.
كما ذكرنا، يجب عليك نقل الملف (الملفات) في أسرع وقت ممكن.لقد تم تحميلها إلى موقع مؤقت وسيقوم النظام بحذفها ما لم تتعامل معها.لذا انقلهم إلى مكان ما أولاً ثم افعل كل ما تحتاجه معهم.
نأمل أن يساعد هذا
أرين
نصائح أخرى
يجب عليك استخدام $_FILES
عالمية فائقة و move_uploaded_file()
وظيفة لمعرفة الملفات التي تم تحميلها بنجاح ونقلها إلى موقعها النهائي في حالة حدوث ذلك.
ال $_POST
سوف يحتوي superglobal على اسم المستخدم وكلمة المرور المقدمين.