আমি একাধিক ফাইল আপলোড করতে এবং সেগুলি একটি ফোল্ডারে সঞ্চয় করতে এবং পথটি পেতে এবং এটি ডাটাবেসে সংরক্ষণ করতে চাই ... একাধিক ফাইল আপলোড করার জন্য আপনি যে কোনও ভাল উদাহরণ দেখেছেন ...
দ্রষ্টব্য: ফাইলগুলি যে কোনও ধরণের হতে পারে ...
আমি একাধিক ফাইল আপলোড করতে এবং সেগুলি একটি ফোল্ডারে সঞ্চয় করতে এবং পথটি পেতে এবং এটি ডাটাবেসে সংরক্ষণ করতে চাই ... একাধিক ফাইল আপলোড করার জন্য আপনি যে কোনও ভাল উদাহরণ দেখেছেন ...
দ্রষ্টব্য: ফাইলগুলি যে কোনও ধরণের হতে পারে ...
উত্তর:
আমি জানি এটি একটি পুরাতন পোস্ট তবে আরও কিছু ব্যাখ্যা কারও পক্ষে একাধিক ফাইল আপলোড করার চেষ্টা করা কার্যকর হতে পারে ... আপনার যা করা দরকার তা এখানে:
name="inputName[]"
multiple="multiple"
বা সঠিক হতে হবেmultiple
"$_FILES['inputName']['param'][index]"
array_filter()
গণনার আগে ব্যবহার করুন ।এখানে একটি ডাউন এবং নোংরা উদাহরণ (কেবল প্রাসঙ্গিক কোড দেখাচ্ছে)
এইচটিএমএল:
<input name="upload[]" type="file" multiple="multiple" />
পিএইচপি:
//$files = array_filter($_FILES['upload']['name']); //something like that to be used before processing files.
// Count # of uploaded files in array
$total = count($_FILES['upload']['name']);
// Loop through each file
for( $i=0 ; $i < $total ; $i++ ) {
//Get the temp file path
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
//Make sure we have a file path
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "./uploadFiles/" . $_FILES['upload']['name'][$i];
//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
//Handle other code here
}
}
}
আশা করি এটি সাহায্য করে!
<input type="file">
বৈশিষ্ট্যটির অনুমতি দেয় multiple
- প্রত্যাশিত ফলাফলটি কী হবে? ব্রাউজার একাধিক ফাইল নির্বাচন করার অনুমতি দেয়?
multiple
ইনপুট উপাদানটির বৈশিষ্ট্যটি বুলিয়ান, যার অর্থ আপনি এটির কোনও মূল্য সরবরাহ করেন না: <input name="upload[]" type="file" multiple />
এইচটিএমএল 5 দেখুন: w3.org/TR/2011/WD-htML5-20110525/…
একাধিক ফাইল নির্বাচন করা যায় এবং তারপরে
<input type='file' name='file[]' multiple>
নমুনা পিএইচপি স্ক্রিপ্ট ব্যবহার করে আপলোড করা যায় যা আপলোড করে:
<html>
<title>Upload</title>
<?php
session_start();
$target=$_POST['directory'];
if($target[strlen($target)-1]!='/')
$target=$target.'/';
$count=0;
foreach ($_FILES['file']['name'] as $filename)
{
$temp=$target;
$tmp=$_FILES['file']['tmp_name'][$count];
$count=$count + 1;
$temp=$temp.basename($filename);
move_uploaded_file($tmp,$temp);
$temp='';
$tmp='';
}
header("location:../../views/upload.php");
?>
</html>
নির্বাচিত ফাইলগুলি অ্যারে হিসাবে প্রাপ্ত হয়
$_FILES['file']['name'][0]
প্রথম ফাইলের নাম সংরক্ষণ করা।
$_FILES['file']['name'][1]
দ্বিতীয় ফাইলের নাম সংরক্ষণ করা।
ইত্যাদি।
এইচটিএমএল
সাথে ডিভ তৈরি id='dvFile'
;
তৈরি করা button
;
onclick
যে বোতাম কলিং ফাংশন add_more()
জাভাস্ক্রিপ্ট
function add_more() {
var txt = "<br><input type=\"file\" name=\"item_file[]\">";
document.getElementById("dvFile").innerHTML += txt;
}
পিএইচপি
if(count($_FILES["item_file"]['name'])>0)
{
//check if any file uploaded
$GLOBALS['msg'] = ""; //initiate the global message
for($j=0; $j < count($_FILES["item_file"]['name']); $j++)
{ //loop the uploaded file array
$filen = $_FILES["item_file"]['name']["$j"]; //file name
$path = 'uploads/'.$filen; //generate the destination path
if(move_uploaded_file($_FILES["item_file"]['tmp_name']["$j"],$path))
{
//upload the file
$GLOBALS['msg'] .= "File# ".($j+1)." ($filen) uploaded successfully<br>";
//Success message
}
}
}
else {
$GLOBALS['msg'] = "No files found to upload"; //No file upload message
}
এইভাবে আপনি ফাইল / চিত্রগুলি, যতগুলি প্রয়োজন যোগ করতে পারেন এবং পিএইচপি স্ক্রিপ্টের মাধ্যমে এগুলি পরিচালনা করতে পারেন।
fileInput.value
, তবে আমি লক্ষ্য করেছি যে একাধিক ফাইলগুলি নির্বাচিত হওয়ার পরে fileInput.value
কেবল একটি
এটি একটি ফাইল আপলোড করা থেকে আলাদা নয় - $_FILES
কোনও অ্যারে এবং সমস্ত আপলোড করা ফাইল রয়েছে।
পিএইচপি ম্যানুয়ালটিতে একটি অধ্যায় রয়েছে: একাধিক ফাইল আপলোড করা
আপনি যদি ব্যবহারকারীর শেষে সহজে নির্বাচন করে একাধিক ফাইল আপলোড সক্ষম করতে চান (আপলোড ক্ষেত্রগুলি পূরণ করার পরিবর্তে একাধিক ফাইল নির্বাচন করে) এসডাব্লুএফইউপলোডটি একবার দেখুন । এটি একটি সাধারণ ফাইল আপলোড ফর্মের থেকে আলাদাভাবে কাজ করে এবং যদিও ফ্ল্যাশটির কাজ করা প্রয়োজন। এসডাব্লুএফইপলোড ফ্ল্যাশের সাথে অচল করে দেওয়া হয়েছিল। এখনই সঠিক পদ্ধতির জন্য অন্য, আরও উত্তরগুলি দেখুন।
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$max_no_img=4; // Maximum number of images value to be set here
echo "<form method=post action='' enctype='multipart/form-data'>";
echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align=center>";
for($i=1; $i<=$max_no_img; $i++){
echo "<tr><td>Images $i</td><td>
<input type=file name='images[]' class='bginput'></td></tr>";
}
echo "<tr><td colspan=2 align=center><input type=submit value='Add Image'></td></tr>";
echo "</form> </table>";
while(list($key,$value) = each($_FILES['images']['name']))
{
//echo $key;
//echo "<br>";
//echo $value;
//echo "<br>";
if(!empty($value)){ // this will check if any blank field is entered
$filename =rand(1,100000).$value; // filename stores the value
$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line
$add = "upload/$filename"; // upload directory path is set
//echo $_FILES['images']['type'][$key]; // uncomment this line if you want to display the file type
//echo "<br>"; // Display a line break
copy($_FILES['images']['tmp_name'][$key], $add);
echo $add;
// upload the file to the server
chmod("$add",0777); // set permission to the file.
}
}
?>
</body>
</html>
সহজ, প্রথমে ফাইলগুলি অ্যারে গণনা করুন, তারপরে লুপের সময় আপনি সহজেই এটি পছন্দ করতে পারেন do
$count = count($_FILES{'item_file']['name']);
এখন আপনি মোট ফাইল সংখ্যা পেয়েছেন।
কিছুক্ষণের মধ্যে লুপটি এরকম করুন:
$i = 0;
while($i<$count)
{
Upload one by one like we do normally
$i++;
}
এই সহজ স্ক্রিপ্ট আমার জন্য কাজ করে।
<?php
foreach($_FILES as $file){
//echo $file['name'];
echo $file['tmp_name'].'</br>';
move_uploaded_file($file['tmp_name'], "./uploads/".$file["name"]);
}
?>
এখানে আমি লিখেছি এমন একটি ফাংশন যা আরও বোধগম্য $_FILES
অ্যারে প্রদান করে।
function getMultiple_FILES() {
$_FILE = array();
foreach($_FILES as $name => $file) {
foreach($file as $property => $keys) {
foreach($keys as $key => $value) {
$_FILE[$name][$key][$property] = $value;
}
}
}
return $_FILE;
}
আমি ত্রুটি উপাদান দিয়ে ফোরচ লুপ চালাচ্ছি, দেখতে দেখতে
foreach($_FILES['userfile']['error'] as $k=>$v)
{
$uploadfile = 'uploads/'. basename($_FILES['userfile']['name'][$k]);
if (move_uploaded_file($_FILES['userfile']['tmp_name'][$k], $uploadfile))
{
echo "File : ", $_FILES['userfile']['name'][$k] ," is valid, and was successfully uploaded.\n";
}
else
{
echo "Possible file : ", $_FILES['userfile']['name'][$k], " upload attack!\n";
}
}
সবেমাত্র নিম্নলিখিত সমাধানগুলি জুড়ে এসেছে:
http://www.mydailyhacks.org/2014/11/05/php-multifile-uploader-for-php-5-4-5-5/
এটি এমন একটি ফর্ম সহ একটি পিএইচপি মাল্টি ফাইল আপলোড স্ক্রিপ্ট যেখানে আপনি একাধিক ইনপুট এবং একটি এজেএক্স অগ্রগতি বার যুক্ত করতে পারেন। সার্ভারে আনপ্যাক করার পরে এটি সরাসরি কাজ করা উচিত ...
আমরা নীচের স্ক্রিপ্টটি ব্যবহার করে পিএইচপি ব্যবহার করে একাধিক ফাইলগুলি আপলোড করতে পারি।
সম্পূর্ণ উত্স কোড এবং পূর্বরূপ ডাউনলোড করুন
<?php
if (isset($_POST['submit'])) {
$j = 0; //Variable for indexing uploaded image
$target_path = "uploads/"; //Declaring Path for uploaded images
for ($i = 0; $i < count($_FILES['file']['name']); $i++) {//loop to get individual element from the array
$validextensions = array("jpeg", "jpg", "png"); //Extensions which are allowed
$ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.)
$file_extension = end($ext); //store extensions in the variable
$target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image
$j = $j + 1;//increment the number of uploaded images according to the files in array
if (($_FILES["file"]["size"][$i] < 100000) //Approx. 100kb files can be uploaded.
&& in_array($file_extension, $validextensions)) {
if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {//if file moved to uploads folder
echo $j. ').<span id="noerror">Image uploaded successfully!.</span><br/><br/>';
} else {//if file was not moved.
echo $j. ').<span id="error">please try again!.</span><br/><br/>';
}
} else {//if file size and file type was incorrect.
echo $j. ').<span id="error">***Invalid file Size or Type***</span><br/><br/>';
}
}
}
?>
$property_images = $_FILES['property_images']['name'];
if(!empty($property_images))
{
for($up=0;$up<count($property_images);$up++)
{
move_uploaded_file($_FILES['property_images']['tmp_name'][$up],'../images/property_images/'.$_FILES['property_images']['name'][$up]);
}
}
এটিই আমার পক্ষে কাজ করেছিল। আমাকে ফাইলগুলি আপলোড করতে হয়েছিল, ফাইলের নাম সংরক্ষণ করতে হয়েছিল এবং আমার কাছে ইনপুট ক্ষেত্রগুলি থেকে সঞ্চয় করার জন্য অতিরিক্ত তথ্য ছিল এবং একাধিক ফাইলের নাম অনুসারে একটি রেকর্ড ছিল। আমি সিরিয়ালাইজ () এর পরে মূল এসকিএল কোয়েরিতে যুক্ত করেছি।
class addReminder extends dbconn {
public function addNewReminder(){
$this->exdate = $_POST['exdate'];
$this->name = $_POST['name'];
$this->category = $_POST['category'];
$this->location = $_POST['location'];
$this->notes = $_POST['notes'];
try {
if(isset($_POST['submit'])){
$total = count($_FILES['fileUpload']['tmp_name']);
for($i=0;$i<$total;$i++){
$fileName = $_FILES['fileUpload']['name'][$i];
$ext = pathinfo($fileName, PATHINFO_EXTENSION);
$newFileName = md5(uniqid());
$fileDest = 'filesUploaded/'.$newFileName.'.'.$ext;
$justFileName = $newFileName.'.'.$ext;
if($ext === 'pdf' || 'jpeg' || 'JPG'){
move_uploaded_file($_FILES['fileUpload']['tmp_name'][$i], $fileDest);
$this->fileName = array($justFileName);
$this->encodedFileNames = serialize($this->fileName);
var_dump($this->encodedFileNames);
}else{
echo $fileName . ' Could not be uploaded. Pdfs and jpegs only please';
}
}
$sql = "INSERT INTO reminders (exdate, name, category, location, fileUpload, notes) VALUES (:exdate,:name,:category,:location,:fileName,:notes)";
$stmt = $this->connect()->prepare($sql);
$stmt->bindParam(':exdate', $this->exdate);
$stmt->bindParam(':name', $this->name);
$stmt->bindParam(':category', $this->category);
$stmt->bindParam(':location', $this->location);
$stmt->bindParam(':fileName', $this->encodedFileNames);
$stmt->bindParam(':notes', $this->notes);
$stmt->execute();
}
}catch(PDOException $e){
echo $e->getMessage();
}
}
}
চমৎকার লিঙ্কটি চালু:
পিএইচপি একক ফাইল আপলোড বিভিন্ন বুনিয়াদি ব্যাখ্যা সহ ।
বৈধতার সাথে পিএইচপি ফাইল আপলোড হচ্ছে
বৈধতার সাথে পিএইচপি একাধিক ফাইলগুলি আপলোড করুন উত্স কোডটি ডাউনলোড করতে এখানে ক্লিক করুন
কীভাবে পিএইচপি এবং মাইএসকিউএল ডেটাবেজে ফাইল আপলোড করবেন (উত্স কোড ডাউনলোড করতে এখানে ক্লিক করুন)
extract($_POST);
$error=array();
$extension=array("jpeg","jpg","png","gif");
foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name)
{
$file_name=$_FILES["files"]["name"][$key];
$file_tmp=$_FILES["files"]["tmp_name"][$key];
$ext=pathinfo($file_name,PATHINFO_EXTENSION);
if(in_array($ext,$extension))
{
if(!file_exists("photo_gallery/".$txtGalleryName."/".$file_name))
{
move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$file_name);
}
else
{
$filename=basename($file_name,$ext);
$newFileName=$filename.time().".".$ext;
move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$newFileName);
}
}
else
{
array_push($error,"$file_name, ");
}
}
এবং আপনাকে অবশ্যই আপনার এইচটিএমএল কোডটি পরীক্ষা করতে হবে
<form action="create_photo_gallery.php" method="post" enctype="multipart/form-data">
<table width="100%">
<tr>
<td>Select Photo (one or multiple):</td>
<td><input type="file" name="files[]" multiple/></td>
</tr>
<tr>
<td colspan="2" align="center">Note: Supported image format: .jpeg, .jpg, .png, .gif</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Create Gallery" id="selectedButton"/></td>
</tr>
</table>
</form>
চমৎকার লিঙ্কটি চালু:
পিএইচপি একক ফাইল আপলোড বিভিন্ন বুনিয়াদি ব্যাখ্যা সহ ।
বৈধতার সাথে পিএইচপি ফাইল আপলোড হচ্ছে
বৈধতার সাথে পিএইচপি একাধিক ফাইলগুলি আপলোড করুন উত্স কোডটি ডাউনলোড করতে এখানে ক্লিক করুন
কীভাবে পিএইচপি এবং মাইএসকিউএল ডেটাবেজে ফাইল আপলোড করবেন (উত্স কোড ডাউনলোড করতে এখানে ক্লিক করুন)