Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.
<?
$zip = new ZipArchive;
if ($zip->open('pdf.zip', ZipArchive::OVERWRITE) === TRUE)
{
    if ($handle = opendir('uploads'))
    {
        // Ο αριθμός των αρχείων που έχεις κατεβάσει και τον έστειλες με τη φόρμα που λέγαμε παραπάνω
        if(isset($_POST['auto_pou_estiles'])){
            $x = $_POST['auto_pou_estiles'];
        }

        // Add all files inside the directory
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != ".." && !is_dir('./uploads/' . $entry))
            {
                if(isset($_POST['auto_pou_estiles')){
                   if($x <= 0){//Αν το $x είναι 0 ή και μικρότερο τότε κατεβάζει αρχεία
                        $zip->addFile('./uploads/' . $entry);
                   }
                   $x--;
                }else{
                        $zip->addFile('./uploads/' . $entry);
                }
            }
        }
        closedir($handle);
    }
 
    $zip->close();
}	
	
	rename('pdf.zip', './admin/download/All_Pdf_From_The_Form.zip');
	
     header('Location: '.'./admin/download/All_Pdf_From_The_Form.zip');

	

?> 

Βέβαια όλο αυτό ίσως είναι λίγο μπακάλικο, αλλά ωστόσο δουλεύει (μάλλον).

  • Απαντ. 38
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ.

ωραίος φίλε λοιπόν τελείωσα το πρότζεκτ θα ανεβάσω εδώ το zip οποίος θέλει να το πάρει να το αλλάξει και να το χρησιμοποιήσει η να μου δώσει καμιά ιδέα για μελλοντικά update! σε ευχαριστώ φίλε για την βοήθεια λογικά θα σε ξανά ενοχλήσω σύντομα :D


Ορίστε η φόρμα οποίος θέλει ας πει ιδέες και σχόλια γενικά :-)  

File.png Download: SubmissionForm

Δημοσ.

Αγαπητή Έκρηξη.

 

Για να ανεβάζεις κώδικα σου συνηστώ να τα βάζεις σε git αποθετήριο. Με αυτό ξέρεις ποιος άλλαξε τι και να καταγονται αυτόματα οι αλλαγές σε αρχεία κειμένου συν ότι όλοι μπορούν να κατεβάσουν το αριστούργημά σου.

 

Μπορείς να "hοστάρεις" τον κώδικά σου στις ακόλουθες πλατφόρμες:

Τέλος το αργαλείο που χρησιμοποιείς είναι το git. Για να αρχίσεις δες εδώ https://git-scm.com/docs/gittutorial

Δημοσ.
<?
$zip = new ZipArchive;
if ($zip->open('pdf.zip', ZipArchive::OVERWRITE) === TRUE)
{
    if ($handle = opendir('uploads'))
    {
        // Ο αριθμός των αρχείων που έχεις κατεβάσει και τον έστειλες με τη φόρμα που λέγαμε παραπάνω
        if(isset($_POST['auto_pou_estiles'])){
            $x = $_POST['auto_pou_estiles'];
        }

        // Add all files inside the directory
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != ".." && !is_dir('./uploads/' . $entry))
            {
                if(isset($_POST['auto_pou_estiles')){
                   if($x <= 0){//Αν το $x είναι 0 ή και μικρότερο τότε κατεβάζει αρχεία
                        $zip->addFile('./uploads/' . $entry);
                   }
                   $x--;
                }else{
                        $zip->addFile('./uploads/' . $entry);
                }
            }
        }
        closedir($handle);
    }
 
    $zip->close();
}	
	
	rename('pdf.zip', './admin/download/All_Pdf_From_The_Form.zip');
	
     header('Location: '.'./admin/download/All_Pdf_From_The_Form.zip');

	

?> 

Βέβαια όλο αυτό ίσως είναι λίγο μπακάλικο, αλλά ωστόσο δουλεύει (μάλλον).

 

 

φίλε δουλεύει άλλα δεν έχω καταλάβει ακριβώς πως?? πχ του βάζω αριθμό 3 από μια φόρμα που χω φτιάξει και κατεβάζει κάποια αρχεία από το φάκελο του βάζω αριθμό 5 κατεβάζει άλλα αρχεία το θέμα είναι ότι κατεβάζει ότι θέλει ενώ εγώ ουσιαστικά θέλω όταν βάζω τον αριθμό 3 (ο οποίος θα είναι και το όνομα του αρχείου πχ 3.pdf) να κατεβάζει από το 3.pdf και κάτω! (3.pdf, 4.pdf, 5.pdf, 6.pdf κτλ   :)

Δημοσ.

Τα αρχεία έχουν τέτοιο όνομα; Πχ είναι 1.pdf, 2.pdf, 3.pdf κτλ?

 

τα αρχεία θα είναι της μορφής aaaa-001.pdf, aaaa-002.pdf, aaaa-003.pdf κτλ,

 

ΥΓ το "aaaa" το αλλάζω εγώ σε κάθε φόρμα που ανοίγω!

Δημοσ.

Τι εννοείς το αλλάζεις;

 

Πάντως αν το μόνο πράγμα που αλλάζει στα ονόματα είναι το νούμερο, τότε...

 

Απλά ας μας απαντήσει κάποιος αν το sort έχει κάποιο θέμα του στυλ να βάζει πρώτα το 1 και μετά το 0. 

<?
$zip = new ZipArchive;
if ($zip->open('pdf.zip', ZipArchive::OVERWRITE) === TRUE)
{
    if ($handle = opendir('uploads'))
    {
        // Ο αριθμός των αρχείων που έχεις κατεβάσει και τον έστειλες με τη φόρμα που λέγαμε παραπάνω
        if(isset($_POST['auto_pou_estiles'])){
            $x = $_POST['auto_pou_estiles'];
        }
        $array_with_entries = array(); //το γράφω έτσι γιατί νομίζω πως είχε θέμα σε παλιότερες php

        // Add all files inside the directory
        while (false !== ($entry = readdir($handle)))
        {
            if ($entry != "." && $entry != ".." && !is_dir('./uploads/' . $entry))
            {
                 $array_with_entries[] = $entry;
            }
        }
        closedir($handle);
        
        sort($array_with_entries); //ταξινομεί τα αρχεία με βάσει το όνομα
        
        //τρέχεις τον πίνακα με τα ονόματα των αρχείων
        foreach($array_with_entries as $entry){
            if(isset($x)){
                 if($x<=0){ //αν το $x έχουν προσπελαστεί τα αρχεία που έχεις κατεβάσει τότε τα περνάει στο zip
                      $zip->addFile('./uploads/' . $entry);
                 }
                 $x--;
            }else{
                 $zip->addFile('./uploads/' . $entry);
            }
        }
    }
 
    $zip->close();
}	
	
	rename('pdf.zip', './admin/download/All_Pdf_From_The_Form.zip');
	
     header('Location: '.'./admin/download/All_Pdf_From_The_Form.zip');

	

?> 
Δημοσ.

μετά από μερικά τεστ λοιπόν αυτό δουλεύει άλλα πως, εγώ μέσα στον φάκελο (uploads) έχω αρχικά 5 άλλα αρχεία άσχετα τα οποία είναι για να μου εμφανίζουν σε μια html τι έχει ο φάκελος. μαζί έβαλα και 10 αρχεία του τύπου aaaa-001.pdf, aaaa-002.pdf, ...., aaaa-010.pdf, τρέχω λοιπόν την φόρμα που θα γράψω τον αριθμό, βάζω αριθμό 3 οκ κατεβαίνει το zip.

 

 

 

ο φάκελος uploads έχει αυτά μέσα                                                                     το zip με αριθμό 3

uploads.png                                                                                                            uploads2.png

 

ΥΓ: έβγαλα από τον φάκελο τα πρώτα 5 αρχεία και έμειναν μόνο τα pdf μέσα, με αριθμό 10 δεν δουλεύει και με αριθμό 9 μου κατεβάζει ζιπ με το aaaa-009.pdf

Δημοσ.

Με 10 είναι λογικό να μην σου κατεβάζει τίποτα. 

Λάθος δικό μου... 

Αυτό κάν' το:

$x = $_POST['auto_pou_estiles'] - 1;

Με το 9 άρα θα πρέπει να σου κατεβάζει μόνο ένα. Απλά όπως φαίνεται υπάρχει το πρόβλημα που είπα παραπάνω.

 

Πηγαίνει πρώτο στον πίνακα το aaaa-010.pdf 

 

Εμφάνισε τα περιεχόμενα του πίνακα μετά το sort και θα καταλάβεις. 

 

Ας μας απαντήσει κάποιος που ξέρει ακριβώς τι παίζει με το sort().

Δημοσ.

καλησπερα φιλε και παλι λοιπον εχω βαλει αυτον των κωδικα 

<!doctype html>
<html>
<head>
   <meta charset="UTF-8">
   <link rel="shortcut icon" href="./.favicon.ico">
   <title>Directory Contents</title>

   <link rel="stylesheet" href="./.style.css">
   <script src="./.sorttable.js"></script>
</head>

<body>
<div id="container">
	<h1>PDF File</h1>

	<table class="sortable">
	    <thead>
		<tr>
			<th>Filename</th>
			<th>Type</th>
			<th>Size</th>
			<th>Date Modified</th>
			
		</tr>
	    </thead>
	    <tbody><?php

	// Adds pretty filesizes
	function pretty_filesize($file) {
		$size=filesize($file);
		if($size<1024){$size=$size." Bytes";}
		elseif(($size<1048576)&&($size>1023)){$size=round($size/1024, 1)." KB";}
		elseif(($size<1073741824)&&($size>1048575)){$size=round($size/1048576, 1)." MB";}
		else{$size=round($size/1073741824, 1)." GB";}
		return $size;
	}

 	// Checks to see if veiwing hidden files is enabled
	if($_SERVER['QUERY_STRING']=="hidden")
	{$hide="";
	 $ahref="./";
	 $atext="Hide";}
	else
	{$hide=".";
	 $ahref="./?hidden";
	 $atext="Show";}

	 // Opens directory
	 $myDirectory=opendir(".");

	// Gets each entry
	while($entryName=readdir($myDirectory)) {
	   $dirArray[]=$entryName;
	}

	// Closes directory
	closedir($myDirectory);

	// Counts elements in array
	$indexCount=count($dirArray);

	// Sorts files
	sort($dirArray);

	// Loops through the array of files
	for($index=0; $index < $indexCount; $index++) {

	// Decides if hidden files should be displayed, based on query above.
	    if(substr("$dirArray[$index]", 0, 1)!=$hide) {

	// Resets Variables
		$favicon="";
		$class="file";

	// Gets File Names
		$name=$dirArray[$index];
		$namehref=$dirArray[$index];

	// Gets Date Modified
		$modtime=date("M j Y g:i A", filemtime($dirArray[$index]));
		$timekey=date("YmdHis", filemtime($dirArray[$index]));


	// Separates directories, and performs operations on those directories
		if(is_dir($dirArray[$index]))
		{
				$extn="<Directory>";
				$size="<Directory>";
				$sizekey="0";
				$class="dir";

			// Gets favicon.ico, and displays it, only if it exists.
				if(file_exists("$namehref/favicon.ico"))
					{
						$favicon=" style='background-image:url($namehref/favicon.ico);'";
						$extn="<Website>";
					}

			// Cleans up . and .. directories
				if($name=="."){$name=". (Current Directory)"; $extn="<System Dir>"; $favicon=" style='background-image:url($namehref/.favicon.ico);'";}
				if($name==".."){$name=".. (Parent Directory)"; $extn="<System Dir>";}
		}

	// File-only operations
		else{
			// Gets file extension
			$extn=pathinfo($dirArray[$index], PATHINFO_EXTENSION);

			// Prettifies file type
			switch ($extn){
				case "png": $extn="PNG Image"; break;
				case "jpg": $extn="JPEG Image"; break;
				case "jpeg": $extn="JPEG Image"; break;
				case "svg": $extn="SVG Image"; break;
				case "gif": $extn="GIF Image"; break;
				case "ico": $extn="Windows Icon"; break;

				case "txt": $extn="Text File"; break;
				case "log": $extn="Log File"; break;
				case "htm": $extn="HTML File"; break;
				case "html": $extn="HTML File"; break;
				case "xhtml": $extn="HTML File"; break;
				case "shtml": $extn="HTML File"; break;
				case "php": $extn="PHP Script"; break;
				case "js": $extn="Javascript File"; break;
				case "css": $extn="Stylesheet"; break;

				case "pdf": $extn="PDF Document"; break;
				case "xls": $extn="Spreadsheet"; break;
				case "xlsx": $extn="Spreadsheet"; break;
				case "doc": $extn="Microsoft Word Document"; break;
				case "docx": $extn="Microsoft Word Document"; break;

				case "zip": $extn="ZIP Archive"; break;
				case "htaccess": $extn="Apache Config File"; break;
				case "exe": $extn="Windows Executable"; break;

				default: if($extn!=""){$extn=strtoupper($extn)." File";} else{$extn="Unknown";} break;
			}

			// Gets and cleans up file size
				$size=pretty_filesize($dirArray[$index]);
				$sizekey=filesize($dirArray[$index]);
		}

	// Output
	 echo("
		<tr class='$class'>
			<td><a href='./$namehref'$favicon class='name'>$name</a></td>
			<td><a href='./$namehref'>$extn</a></td>
			<td sorttable_customkey='$sizekey'><a href='./$namehref'>$size</a></td>
			<td sorttable_customkey='$timekey'><a href='./$namehref'>$modtime</a></td>
			
		</tr>");
	   }
	}
	?>

	    </tbody>
	</table>

</div>
<script language="javascript">
document.onmousedown=disableclick;

function disableclick(event)
{
  if(event.button==2)
   {
   
     return false;    
   }
}
</script>
</body>
</html>

ουσιαστικά κάνει αυτό Link.png Site: demo
γνωρίζεις πως θα μπορέσω να κολλήσω μια ακόμα στήλη με ckeckbox έτσι ώστε να επιλέγει ο admin πια θα κατεβάζει σε zip??

Δημοσ.

Ένα ακόμα <td> με τα checkbox να πάρουν όλα το ίδιο όνομα πχ CkBoxes[] και κάθε ένα από αυτά θα έχει ως value το όνομα του αρχείου.

Δημοσ.

α οκ κάπως έτσι το σκεφτόμουν άλλα αυτό μετά θα ναι δυναμικό πχ θα εμφανίζεται ckeckbox με κάθε upload ενός αρχείου στον φάκελο?? 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...