Skripta za upload slika (malo novijeg datuma)

Dorađujem sajt za nekretnine i isprobavam već nekoliko dana neke skripte, ali mi na svakoj fali znanje Ajaxa da ju modificiram tako da mi napravi rename svake slike sukladno nekom polju (šifri) u prethodno ispunjenoj formi.

Sve te skripte nude čisti upload i prepišu puno ime filea i spreme u neki folder. Mogu i tako korisniku zadati zadatak da sam posloži imena, ali želim da se korisnik ne pati. Također trebam i resizanje.

Jel ima netko neku informaciju ili da je modificirao npr. Uploadify skriptu koja mi se zasad po jednostavnosti najviše svidjela? Naravno, platim ako se netko želi upustiti u trenutni kod.

Napravio sam već sve te zahtjeve na jednom drugom projektu, ali to je bilo jadno - jedna po jedna slika sa gomilom koda.

Jel ti treba ovakonesto?

<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file[]"  id="file1">

<input type="file" name="file[]"  id="file2">

<input type="file" name="file[]"  id="file3">

<input type="file" name="file[]"  id="file4">

<input type="submit" name="submit" value="Dodaj slike">
</form

I naravno upload.php

<?php
for ($i=0;$i<count($_FILES['file']['name']);$i++){
    echo "
";
    $allowedExts = array("gif", "jpeg", "jpg", "png");
    $temp = explode(".", $_FILES["file"]["name"][$i]);
    $extension = end($temp);
    if ((($_FILES["file"]["type"][$i] == "image/gif")
    || ($_FILES["file"]["type"][$i] == "image/jpeg")
    || ($_FILES["file"]["type"][$i] == "image/jpg")
    || ($_FILES["file"]["type"][$i] == "image/pjpeg")
    || ($_FILES["file"]["type"][$i] == "image/x-png")
    || ($_FILES["file"]["type"][$i] == "image/png"))
    && ($_FILES["file"]["size"][$i] < 2120000) && ($_FILES["file"]["error"][$i]==0)
    && in_array($extension, $allowedExts)){
        echo "Upload: " . $_FILES["file"]["name"][$i] . "
";
        echo "Type: " . $_FILES["file"]["type"][$i] . "
";
        echo "Size: " . ($_FILES["file"]["size"][$i] / 1024) . " kB
";
        echo "Stored in: " . $_FILES["file"]["tmp_name"][$i]."
";
        if (file_exists("upload/" . $_FILES["file"]["name"][$i])){
            echo "<b>".$_FILES["file"]["name"][$i] . " already exists.</b>
 ";
        } else {
            move_uploaded_file($_FILES["file"]["tmp_name"][$i],
            "upload/" . $_FILES["file"]["name"][$i]);
            echo "<b>Uploaded to</b>: " . "upload/" . $_FILES["file"]["name"][$i]."
";
        }
    }
}
?>

Pozdrav!

Hvala ti na odgovoru, ali zamisli da dodaješ tom metodom 20 nekretnina po 20 slika svaka. Moraš 400 puta kliknuti na Browse. Mislim da je to posao od nekoliko dana za onoga koji bi to unosio. Ovako bi bilo nekih 2 sata posla i najveći dio posla bi bilo ukucavanje podataka.

Nešto sam ispetljao pomoću te Uploadify skripte, sad sam napravio da nekretnina koristi uniqid() i radim na tome da dodam sufix sa inkrementalnim brojevima koji će slikama dati nazive npr. 4568912aads-1, 4568912aads-2, 4568912aads-3…

Evo i dijela dosadašnjeg koda:

<?php $idn = uniqid(); ?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="registerform" accept-charset="utf-8" enctype="multipart/form-data">
    <ul>
        <li>...</li>
	<li>...</li>
	<li>...</li>
	<li>
	    <label class="admin_description no-space" for="naziv">Upload slika:</label>
	    <input id="file_upload" name="file_upload" class="admin_input" type="file" multiple="true">
	</li>					
	<li>
	    <input class="admin_button_submit" type="submit" name="submit" value="Potvrdi" />
	</li>
    </ul>
</form>

<script type="text/javascript">
    <?php $timestamp = time();?>
    $(function() {
	$('#file_upload').uploadify({
	'formData'  : {
	        'timestamp' : '<?php echo $timestamp;?>',
		'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',
		'idn'		: '<?php echo $idn;?>'
		},
		'swf'      : 'uploadify.swf',
		'uploader' : 'upload.php'
	});
});
</script>

I sad ide ta Uploadify skripta (ovo gore je početak koji ju pokrene):

<?php
$targetFolder = '/uploads'; // Relative to the root

$verifyToken = md5('unique_salt' . $_POST['timestamp']);

if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
	$tempFile = $_FILES['Filedata']['tmp_name'];
	$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
	$targetFile = rtrim($targetPath,'/') . '/'.$_POST['idn'].'-' . $_FILES['Filedata']['name'];
	
	// Validate the file type
	$fileTypes = array('jpg','jpeg','gif','png'); // File extensions
	$fileParts = pathinfo($_FILES['Filedata']['name']);
	
	if (in_array($fileParts['extension'],$fileTypes)) {
		move_uploaded_file($tempFile,$targetFile);
		echo '1';
	} else {
		echo 'Invalid file type.';
	}
}
?>

Sad mi samo ostaje da izmjenim u $targetFile dio $_FILES[‘Filedata’][‘name’] sa nekim načinom inkrementalnih brojeva. I mislim da sam onda to riješio.

Srećom, taj posao će raditi 2 korisnika na dobro mi poznatim mašinama pa sam izbjegao hrpu problema.