Upload Images forma

DarkBlood

Registered
Как мога да направя Upload forma всеки потребител да може да качва до 1 ГБ в личната му папка и след товакато стигне до 1 GB вече формата да се скрива и да не му отваря страницата да може да качва само картинки в формат: jpg, gif , png , bmp и др.
 
Тук има много upload скриптове ;) Мога да ти помогна за папката
<?php
function dirsize($path)
{
$size = 0;

if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
$path .= DIRECTORY_SEPARATOR;
}

if (is_file($path)) {
return filesize($path);
} elseif (!is_dir($path)) {
return false;
}

$queue = array($path);
for ($i = 0, $j = count($queue); $i < $j; ++$i)
{
$parent = $i;
if (is_dir($queue[$i]) && $dir = @dir($queue[$i])) {
$subdirs = array();
while (false !== ($entry = $dir->read())) {
if ($entry == '.' || $entry == '..') {
continue;
}

$path = $queue[$i] . $entry;
if (is_dir($path)) {
$path .= DIRECTORY_SEPARATOR;
$subdirs[] = $path;
} elseif (is_file($path)) {
$size += filesize($path);
}
}


unset($queue[0]);
$queue = array_merge($subdirs, $queue);

$i = -1;
$j = count($queue);

$dir->close();
unset($dir);
}
}

return $size;
}

if(dirsize('папката') >= "2147483648") { //тва многото числа се равняват на 2GB
echo "Вие сте надвишили лимита"; } else {
echo "Ъплоуд скрипта ти е тука"; }

?>
 
Искам да попитам как този скрипт:
http://web-tourist.net/login/login/view.php?st=927
Може да го преправя да качва в папката на потребителя, а не в папка upload/ ?

Аз го правя по следния начин:

Код:
<?
include("session.php");
?>
<?php 
$target = "$session->username/"; //Директорията за качване 
$target = $target . basename( $_FILES['uploaded']['name']) ; 
$ok=1; 

//Това е ограничението ни за размер 
if ($uploaded_size > 350000) 
{ 
echo "Вашия файл е твърде голям.<br>"; 
$ok=0; 
} 
//Това е ограничението за вид на файла 
if (!($uploaded_type=="image/jpeg" || $uploaded_type=="image/gif" || $uploaded_type=="image/png")){ 
echo "You may only upload jpeg and gif files.<br>"; 
$ok=0; 
} 
//Проверка дали файл със същото име вече не съществува в директорията 

if (file_exists($target)) { 
echo "The file $filename exists<br>"; 
$ok=0; 
exit; 
} else { 
echo "The file $filename does not exist<br>"; 
} 
//Тук проверяваме дали по-горе извършените проверки са дали грешки 
if ($ok==0) 
{ 
Echo "Sorry your file was not uploaded"; 
} 

//Ако всичко е наред качваме файла на хоста 
else 
{ 
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
{ 
echo "The file ".basename( $_FILES['uploaded']['name']). " has been uploaded"; 
} 
else 
{ 
echo "Sorry, there was a problem uploading your file."; //тук показва грешка ако файла не е качен правилно 
} 
} 
?>

Обаче ми дава грешка:
You may only upload jpeg and gif files.
The file does not exist
Sorry your file was not uploaded


skatebord благодаря за горния код ако може да едитнеш и тоя upload.. +1 :P
 
<?php
function dirsize($path)
{
$size = 0;

if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
$path .= DIRECTORY_SEPARATOR;
}

if (is_file($path)) {
return filesize($path);
} elseif (!is_dir($path)) {
return false;
}

$queue = array($path);
for ($i = 0, $j = count($queue); $i < $j; ++$i)
{
$parent = $i;
if (is_dir($queue[$i]) && $dir = @dir($queue[$i])) {
$subdirs = array();
while (false !== ($entry = $dir->read())) {
if ($entry == '.' || $entry == '..') {
continue;
}

$path = $queue[$i] . $entry;
if (is_dir($path)) {
$path .= DIRECTORY_SEPARATOR;
$subdirs[] = $path;
} elseif (is_file($path)) {
$size += filesize($path);
}
}


unset($queue[0]);
$queue = array_merge($subdirs, $queue);

$i = -1;
$j = count($queue);

$dir->close();
unset($dir);
}
}

return $size;
}


include("session.php");

$folder= "$session->username/"; //Директорията за качване
$target = $folder . basename( $_FILES['uploaded']['name']) ;
$ok=1;

if(dirsize('$folder') >= "2147483648") {
echo "Вие сте надвишили лимита"; } else {
//Това е ограничението ни за размер
if ($uploaded_size > 350000)
{
echo "Вашия файл е твърде голям.<br>";
$ok=0;
}
//Това е ограничението за вид на файла
if (!$uploaded_type=="image/jpeg" || !$uploaded_type=="image/gif" || !$uploaded_type=="image/png"){
echo "You may only upload jpeg and gif files.<br>";
$ok=0;
}
//Проверка дали файл със същото име вече не съществува в директорията

if (file_exists($target)) {
echo "The file $filename exists<br>";
$ok=0;
exit;
} else {
echo "The file $filename does not exist<br>";
}
//Тук проверяваме дали по-горе извършените проверки са дали грешки
if ($ok==0)
{
Echo "Sorry your file was not uploaded";
}

//Ако всичко е наред качваме файла на хоста
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ".basename( $_FILES['uploaded']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file."; //тук показва грешка ако файла не е качен правилно
}
}
}
?>
 
You may only upload jpeg and gif files.
The file does not exist
Sorry your file was not uploaded

Това не е грешка... Какъв тип файлове качваш?
 
skatebord каза:
You may only upload jpeg and gif files.
The file does not exist
Sorry your file was not uploaded

Това не е грешка... Какъв тип файлове качваш?
jpg ЕДИТ: сега пробвах и с gif, но пак същата работа :lol:
 
Я сега
Код:
<?php
function dirsize($path)
{
$size = 0;

if (substr($path, -1, 1) !== DIRECTORY_SEPARATOR) {
$path .= DIRECTORY_SEPARATOR;
}

if (is_file($path)) {
return filesize($path);
} elseif (!is_dir($path)) {
return false;
}

$queue = array($path);
for ($i = 0, $j = count($queue); $i < $j; ++$i)
{
$parent = $i;
if (is_dir($queue[$i]) && $dir = @dir($queue[$i])) {
$subdirs = array();
while (false !== ($entry = $dir->read())) {
if ($entry == '.' || $entry == '..') {
continue;
}

$path = $queue[$i] . $entry;
if (is_dir($path)) {
$path .= DIRECTORY_SEPARATOR;
$subdirs[] = $path;
} elseif (is_file($path)) {
$size += filesize($path);
}
}


unset($queue[0]);
$queue = array_merge($subdirs, $queue);

$i = -1;
$j = count($queue);

$dir->close();
unset($dir);
}
}

return $size;
}


include("session.php");

$folder= "$session->username/"; //Директорията за качване
$target = $folder . basename( $_FILES['uploaded']['name']) ;
$ok=1;

if(dirsize('$folder') >= "2147483648") {
echo "Вие сте надвишили лимита"; } else {
//Това е ограничението ни за размер
if ($uploaded_size > 350000)
{
echo "Вашия файл е твърде голям.<br>";
$ok=0;
}
//Това е ограничението за вид на файла
if (!$uploaded_type=="image/jpeg" || !$uploaded_type=="image/gif" || !$uploaded_type=="image/png" || !$uploaded_type=="image/jpg"){
echo "You may only upload jpeg and gif files.<br>";
$ok=0;
}
//Проверка дали файл със същото име вече не съществува в директорията

if (file_exists($target)) {
echo "The file $filename exists<br>";
$ok=0;
exit;
} else {
echo "The file $filename does not exist<br>";
}
//Тук проверяваме дали по-горе извършените проверки са дали грешки
if ($ok==0)
{
Echo "Sorry your file was not uploaded";
}

//Ако всичко е наред качваме файла на хоста
else
{
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target))
{
echo "The file ".basename( $_FILES['uploaded']['name']). " has been uploaded";
}
else
{
echo "Sorry, there was a problem uploading your file."; //тук показва грешка ако файла не е качен правилно
}
}
}
?>
 

Back
Горе