hi,
in a php-script someone else wrote I found
'<input type="file" name="photo[]" accept="image/jpeg">':
echo " <tr>\n";
echo " <td width=\"130\" height=\"30\"></td>\n";
echo " <td width=\"370\" height=\"30\"><input type=\"file\" name=\"photo[]\"
accept=\"image/jpeg\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td width=\"130\" height=\"30\"></td>\n";
echo " <td width=\"370\" height=\"30\"><input type=\"file\" name=\"photo[]\"
accept=\"image/jpeg\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td width=\"130\" height=\"30\"></td>\n";
echo " <td width=\"370\" height=\"30\"><input type=\"file\" name=\"photo[]\"
accept=\"image/jpeg\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td width=\"130\" height=\"30\"></td>\n";
echo " <td width=\"370\" height=\"30\"><input type=\"file\" name=\"photo[]\"
accept=\"image/jpeg\"></td>\n";
echo " </tr>\n";
and this is the code which is run by the form's action-attribute
(same script as above):
for( $i = 0; $i < count( $photo ); $i++ )
{
if( $photo[ $i ] != "" && $photo[ $i ] != "none" )
{
if( $photo_size[ $i ] > 500000 ) error( "Ung�ltige Fotogr��e" );
if($photo_type[ $i ] == "image/pjpeg" || $photo_type[ $i ] == "image/jpeg")
$newphoto[] = $photo[ $i ];
else
error( "Ung�ltiger Dateityp, bitte w�hlen Sie JPEG " );
}
}
(you can find the complete file here:
http://home.t-online.de/~fam.natter/list.php)
Now the problem is that the above code only works with php 4.0.6 and
not with php 4.0.0: php 4.0.0 puts the type and name and
temporary-file information in the $image array while 4.0.6 puts it in
$image_type and $image (both use $image_size). See the example output
below for more information.
Here is a small test-case:
============ test_files.html ===============
<html>
<head><title>Test</title></head>
<body>
<form action="test_files.php" method="post" enctype="multipart/form-data">
<input type="file" name="image[]" accept="image/jpeg">
<input type="file" name="image[]" accept="image/jpeg">
<input type="submit" value="submit">
</form>
</body>
</html>
============================================
============ test_files.php ================
<?php
if (!isset ($image)) {
echo "<b>Missing Parameter in test_file.php!</b>";
exit;
}
if (isset ($image_type))
echo "<b>image_type is set !</b><br>";
if (isset ($image_size))
echo "<b>image_size is set !</b><br>";
for ($i = 0; $i < count ($image); $i++)
{
echo "<b>image[$i]='" . $image[$i] . "'<b>\n";
}
?>
============================================
Here is the output with two different versions of php when I select
two jpeg images (northbeach.jpg and Water01.jpg):
This is the output with php 4.0.6:
image_type is set !
image_size is set !
image[0]='/tmp/phpvRpXFA' image[1]='/tmp/phpfvgzMk'
This is the output with php 4.0.0:
image_size is set !
image[0]='northbeach.jpg' image[1]='image/jpeg' image[2]='/tmp/phpZApBAO'
image[3]='Water01.jpg' image[4]='image/jpeg' image[5]='/tmp/phpC3YeVs'
So how can I use this input-file array (image[] in the example)
portably ?
BTW: how can I get access to /tmp/phpZApBAO (I need to create
thumbnails from the images) ? On some servers this seems to create
permission-problems (but I cannot change the configuration of the
server).
--
Felix Natter
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php