12. marts 2007 - 11:31
Der er
2 kommentarer
Upload form - Resize og Kun jpeg/jpg osv.?
Hej, jeg har det her script som jeg gerne vil have lavet ekstra på.
Man kan oploade et billede, men vil gerne have at når billedet bliver uploadet bliver der lagt en kopi i samme mappe der f.eks. hedder "$filename_small" som bliver resizet til # * # px.
Og hvis det ikke er et JPG/GIF billede skal den fortælle at den ikke kan uploade... Nogen der kan hjælpe ??
------------------ upload.php -------------------
<?php
function upload_form() {
?>
<html>
<head><title>File upload</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="<?= $_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="action" value="upload">
Upload file!
<input type="file" name="userfile">
<input type="submit" name="submit" value="Upload">
</form>
<?php
}
function upload_file() {
$userfile = $_FILES['userfile']['tmp_name'];
$userfile_name = $_FILES['userfile']['name'];
$userfile_size = $_FILES['userfile']['size'];
$userfile_type = $_FILES['userfile']['type'];
$userfile_dim = getimagesize($_FILES['userfile']['tmp_name']);
$archive_dir=$_SERVER['DOCUMENT_ROOT']."/upload/";
$filename = basename($userfile_name);
$max_filesize = 50000;
if($userfile_dim[0] > 200 || $userfile_dim[1] > 200) die("Image over 200x200 px!");
if($userfile_size <= 0) die ("$filename is empty");
if($userfile_size > $max_filesize) die ("$filename is too big! Only $max_filesize bytes allowed!");
if(!move_uploaded_file($userfile, "$archive_dir/$filename")) die ("Can't copy $userfile_name to $filename.");
echo "<img src=\"upload/$filename\"><br>";
echo "$filename has been successfully uploaded.<br>";
echo "Filesize: " . number_format($userfile_size) . "<br>";
echo "Filetype: $userfile_type<br>";
}
?>
<?php
if($_POST['action'] == 'upload') {
upload_file();
} else {
upload_form();
}
?>
12. marts 2007 - 22:04
#2
Test lige denne kode:
<?php
function resize( $filename, $newfilename, $maxw, $maxh )
{
$result = false;
$srcim = imagecreatefromjpeg( $filename );
$ow = imagesx( $srcim );
$oh = imagesy( $srcim );
$wscale = $maxw / $ow;
$hscale = $maxh / $oh;
$scale = ( $hscale < $wscale ? $hscale : $wscale );
$nw = round( $ow * $scale, 0 );
$nh = round( $oh * $scale, 0 );
$dstim = imagecreatetruecolor( $nw, $nh );
imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
$result = imagejpeg( $dstim, $newfilename, 85 );
imagedestroy( $dstim );
imagedestroy( $srcim );
return $result;
}
function upload_form()
{
?>
<html>
<head>
<title>File upload</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="<?= $_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="action" value="upload">
Upload file!<input type="file" name="userfile">
<input type="submit" name="submit" value="Upload">
</form>
<?php
}
function upload_file()
{
$userfile = $_FILES['userfile']['tmp_name'];
$userfile_name = $_FILES['userfile']['name'];
$userfile_size = $_FILES['userfile']['size'];
$userfile_type = pathinfo($_FILES['userfile']['name'],PATHINFO_EXTENSION);
$userfile_dim = getimagesize($_FILES['userfile']['tmp_name']);
$userfile_typer = array('jpg','jpeg');
$archive_dir=$_SERVER['DOCUMENT_ROOT']."/upload/";
$filename = basename($userfile_name);
$max_filesize = 50000;
if(!in_array($userfile_type,$userfile_typer))
die("Image not jpg/jpeg");
if($userfile_dim[0] > 200 || $userfile_dim[1] > 200)
die("Image over 200x200 px!");
if($userfile_size <= 0)
die ("$filename is empty");
if($userfile_size > $max_filesize)
die ("$filename is too big! Only $max_filesize bytes allowed!");
if(!move_uploaded_file($userfile, "$archive_dir/$filename"))
die ("Can't copy $userfile_name to $filename.");
if(resize($userfile,50,50,"$archive_dir/small_$filename"))
die ("Can't resize $userfile_name to small_$filename.");
echo "<img src=\"upload/$filename\"><br>";
echo "$filename has been successfully uploaded.<br>";
echo "Filesize: " . number_format($userfile_size) . "<br>";
echo "Filetype: $userfile_type<br>";
}
?>
<?php
if($_POST['action'] == 'upload')
{
upload_file();
}
else
{
upload_form();
}
?>