PDA

View Full Version : سوال: مشکل در این کد آپلود



ABZiko
جمعه 01 اسفند 1393, 20:23 عصر
سلام، بنده این کد رو برای سه باکس آپلود فایل نوشتم :


$fileName=$_FILES['file']['name'];
$fileNameTmp=$_FILES['file']['tmp_name'];
$fileNameType=$_FILES['file']['type'];

$psdName=$_FILES['psdAttachment']['name'];
$psdNameTmp=$_FILES['psdAttachment']['tmp_name'];
$psdNameType=$_FILES['psdAttachment']['type'];

$epsName=$_FILES['epsAttachment']['name'];
$epsNameTmp=$_FILES['epsAttachment']['tmp_name'];
$epsNameType=$_FILES['epsAttachment']['type'];

$arr=array('image/png','image/jpeg','image/gif');
$mime = array('image/png' => 'png', 'image/jpeg' => 'jpg', 'image/gif' => 'gif');

$psdArr=array('image/vnd.adobe.photoshop ');
$psdMime = array('image/vnd.adobe.photoshop ' => 'psd');

$epsArr=array('image/eps');
$epsMime = array('image/eps' => 'eps');

if(in_array($fileNameType,$arr)){

if(is_uploaded_file($fileNameTmp)){

$newName = md5($fileName . time() . rand(1, 99999));
if (move_uploaded_file($fileNameTmp,'Uploads/'.$newName.'.'.$mime[$fileNameType])){

echo "<div style='font-family:Segoe UI'>Your File Uploaded !</div>";}}}

if(in_array($psdNameType,$psdArr)){

if(is_uploaded_file($psdNameTmp)){

$newPSDName = md5($psdName . time() . rand(1, 99999));
if (move_uploaded_file($psdNameTmp,'Uploads/'.$newPSDName.'.'.$psdMime[$psdNameType])){

echo "<div style='font-family:Segoe UI'>Your File Uploaded !</div>";}}}

if(in_array($epsNameType,$epsArr)){

if(is_uploaded_file($epsNameTmp)){

$newEPSName = md5($epsName . time() . rand(1, 99999));
if (move_uploaded_file($epsNameTmp,'Uploads/'.$newEPSName.'.'.$epsMime[$epsNameType])){

echo "<div style='font-family:Segoe UI'>Your File Uploaded !</div>";}}}

$newName=$newName.'.'.$mime[$fileNameType];
$newPSDName=$newPSDName.'.'.$psdMime[$psdNameType];
$newEPSName=$newEPSName.'.'.$epsMime[$epsNameType];


ولی ارور زیر رو می ده، مشکل از چیه؟

Your File Uploaded !




( ! ) Notice: Undefined variable: newPSDName in D:\Wamp\www\PDO\Initial.php on line 85


Call Stack


#
Time
Memory
Function
Location


1
0.0037
341840
{main}( )
..\Initial.php:0





( ! ) Notice: Undefined index: image/x-photoshop in D:\Wamp\www\PDO\Initial.php on line 85


Call Stack


#
Time
Memory
Function
Location


1
0.0037
341840
{main}( )
..\Initial.php:0





( ! ) Notice: Undefined variable: newEPSName in D:\Wamp\www\PDO\Initial.php on line 86


Call Stack


#
Time
Memory
Function
Location


1
0.0037
341840
{main}( )
..\Initial.php:0





( ! ) Notice: Undefined index: in D:\Wamp\www\PDO\Initial.php on line 86


Call Stack


#
Time
Memory
Function
Location


1
0.0037
341840
{main}( )
..\Initial.php:0


Your Row Added !

MMSHFE
جمعه 01 اسفند 1393, 20:55 عصر
اینو تست کنید:

list($file, $psd, $eps) = array($_FILES['file'], $_FILES['psdAttachment'], $_FILES['epsAttachment']);

$fileMimes = array(
'image/gif' => 'gif',
'image/jpeg' => 'jpg',
'image/png' => 'png',
);

$psdMimes = array(
'image/vnd.adobe.photoshop' => 'psd',
);

$epsMimes = array(
'image/eps' => 'eps',
);

if(in_array($file['type'], array_keys($fileMimes)) && is_uploaded_file($file['tmp_name'])) {
$newFileName = md5($file['name'] . time() . rand(1, 99999));
if(move_uploaded_file($file['tmp_name'], 'uploads/' . $newName . '.' . $fileMimes[$file['type']])) {
echo '<div style="font-family:Segoe UI;">Your File Uploaded!</div>';
}
}

if(in_array($psd['type'], array_keys($psdMimes)) && is_uploaded_file($psd['tmp_name'])) {
$newPSDName = md5($psd['name'] . time() . rand(1, 99999));
if(move_uploaded_file($psd['tmp_name'], 'uploads/' . $newPSDName . '.' . $psdMimes[$psd['type']])) {
echo '<div style="font-family:Segoe UI;">Your PSD Uploaded!</div>';
}
}
if(in_array($eps['type'], array_keys($epsMimes)) && is_uploaded_file($eps['tmp_name'])) {
$newEPSName = md5($eps['name'] . time() . rand(1, 99999));
if(move_uploaded_file($eps['tmp_name'], 'uploads/' . $newEPSName . '.' . $epsMimes[$eps['type']])) {
echo '<div style="font-family:Segoe UI;">Your EPS Uploaded!</div>';
}
}

ABZiko
شنبه 02 اسفند 1393, 21:18 عصر
واقعا ممنونم استاد شهرکی ، دلیل اینکه کد بنده کار نمی کرد چی بود؟ می شه بفرمائید .

MMSHFE
یک شنبه 03 اسفند 1393, 08:18 صبح
خوب شما اومدین توی خطوط آخر، یکسری عبارت به متغیرهای اسامی فایلها اضافه کردین درحالی که از قبل ممکنه مقداری نداشته باشن (فایلی برای اون قسمت انتخاب نشده باشه) و اینجا بهتون هشدار میده چون اسم فایلی وجود نداره که شما بخونید و بهش چیزی اضافه کنید.

ABZiko
یک شنبه 03 اسفند 1393, 11:07 صبح
ممنون، استاد شهرکی، این کد الان باز داره ارور می ده :



( ! ) Notice: Undefined variable: newName in D:\Wamp\www\PDO\Initial.php on line 54


Call Stack


#
Time
Memory
Function
Location


1
0.0009
340696
{main}( )
..\Initial.php:0


Your File Uploaded!



( ! ) Notice: Undefined variable: newName in D:\Wamp\www\PDO\Initial.php on line 73


Call Stack


#
Time
Memory
Function
Location


1
0.0009
340696
{main}( )
..\Initial.php:0





( ! ) Notice: Undefined variable: newPSDName in D:\Wamp\www\PDO\Initial.php on line 73


Call Stack


#
Time
Memory
Function
Location


1
0.0009
340696
{main}( )
..\Initial.php:0





( ! ) Notice: Undefined variable: newEPSName in D:\Wamp\www\PDO\Initial.php on line 73


Call Stack


#
Time
Memory
Function
Location


1
0.0009
340696
{main}( )
..\Initial.php:0


Your Row Added !

کد کامل هم اینه :


case'addProduct':{

list($file, $psd, $eps) = array($_FILES['file'], $_FILES['psdAttachment'], $_FILES['epsAttachment']);

$fileMimes = array(
'image/gif' => 'gif',
'image/jpeg' => 'jpg',
'image/png' => 'png',
);

$psdMimes = array(
'image/vnd.adobe.photoshop' => 'psd',
);

$epsMimes = array(
'image/eps' => 'eps',
);

if(in_array($file['type'], array_keys($fileMimes)) && is_uploaded_file($file['tmp_name'])) {
$newFileName = md5($file['name'] . time() . rand(1, 99999));
if(move_uploaded_file($file['tmp_name'], 'uploads/' . $newName . '.' . $fileMimes[$file['type']])) {
echo '<div style="font-family:Segoe UI;">Your File Uploaded!</div>';
}
}

if(in_array($psd['type'], array_keys($psdMimes)) && is_uploaded_file($psd['tmp_name'])) {
$newPSDName = md5($psd['name'] . time() . rand(1, 99999));
if(move_uploaded_file($psd['tmp_name'], 'uploads/' . $newPSDName . '.' . $psdMimes[$psd['type']])) {
echo '<div style="font-family:Segoe UI;">Your PSD Uploaded!</div>';
}
}
if(in_array($eps['type'], array_keys($epsMimes)) && is_uploaded_file($eps['tmp_name'])) {
$newEPSName = md5($eps['name'] . time() . rand(1, 99999));
if(move_uploaded_file($eps['tmp_name'], 'uploads/' . $newEPSName . '.' . $epsMimes[$eps['type']])) {
echo '<div style="font-family:Segoe UI;">Your EPS Uploaded!</div>';
}
}

$objUser=new User();
$result=$objUser->addProduct($_POST['author'],$_POST['avatar'],$_POST['name'],$_POST['explanation'],$_POST['tutorial'],$_POST['subID'],$newName,$newPSDName,$newEPSName,$_POST['userID']);
if($result==0){
echo "<div style='font-family:Segoe UI'>Your Row Added !</div>";
header('Refresh:5;Location:Home.php');}
else{
echo "<div style='font-family:Segoe UI'>A Problem !</div>";
header('Refresh:5;Location:AddProduct.php');}}
break;





دیگه مشکل چیه؟

MMSHFE
یک شنبه 03 اسفند 1393, 11:26 صبح
اسم متغیر newFileName توی خط بعدیش اشتباهاً newName نوشته شده. اصلاحش کنید درست میشه. شرمنده کدها رو همینطوری توی Notepad نوشتم و تست نکردم.

ABZiko
یک شنبه 03 اسفند 1393, 13:25 عصر
دستتون در نکنه استاد شهرکی ،ا از این حرف ها هم نزنید لطفا.
یک مشکل دیگه هم دارم، اونو اصلاح کردم ولی این دفعه داره به این گیر می ده (ببخشید خیلی اذیتتون می کنم:لبخند:):
Your File Uploaded!



( ! ) Notice: Undefined variable: newPSDName in D:\Wamp\www\PDO\Initial.php on line 73


Call Stack


#
Time
Memory
Function
Location


1
0.0012
340672
{main}( )
..\Initial.php:0





( ! ) Notice: Undefined variable: newEPSName in D:\Wamp\www\PDO\Initial.php on line 73


Call Stack


#
Time
Memory
Function
Location


1
0.0012
340672
{main}( )
..\Initial.php:0


Your Row Added !

MMSHFE
یک شنبه 03 اسفند 1393, 13:29 عصر
این کد رو قبل از همه کدها اضافه کنید:

$newFileName = '';
$newPSDName = '';
$newESPName = '';

ABZiko
یک شنبه 03 اسفند 1393, 13:32 عصر
این ارور رو می ده :
Your File Uploaded!



( ! ) Notice: Undefined variable: newEPSName in D:\Wamp\www\PDO\Initial.php on line 77


Call Stack


#
Time
Memory
Function
Location


1
0.0010
341160
{main}( )
..\Initial.php:0


Your Row Added !

MMSHFE
یک شنبه 03 اسفند 1393, 13:33 عصر
$newFileName = '';
$newPSDName = '';
$newEPSName = '';
بازم اشتباه تایپی شد.

ABZiko
یک شنبه 03 اسفند 1393, 13:36 عصر
ممنون، این دفعه بدون هیچ اشتباهی ثبت می کنه ولی نه نام فایل ها رو ثبت می کنه و نه اون ها رو آپلود می کنه.

MMSHFE
یک شنبه 03 اسفند 1393, 13:40 عصر
اینها رو قبل از همه اون if ها باید بگذارین. کد فرم آپلودتون رو هم بگذارین ببینم. احتمالاً فایلی آپلود نمیشه. توی فرم، enctype="multipart/form-data" رو گذاشتین؟ متد فرم post هست؟

ABZiko
یک شنبه 03 اسفند 1393, 13:47 عصر
بفرمائید :


<form method="POST" action="Initial.php" enctype="multipart/form-data">
<input type="hidden" name="userID" value="<?php echo $user['id']; ?>" />
<input type="hidden" name="author" value="<?php echo $user['userName']; ?>" />
<input type="hidden" name="avatar" value="<?php echo $user['file']; ?>" />
<input type="text" placeholder="Name ..." name="name" /><br />
<input type="file" name="file" /><br />
<input type="file" name="psdAttachment" /><br />
<input type="file" name="epsAttachment" /><br />
<textarea placeholder="Explanation ..." name="explanation"></textarea><br />
<textarea placeholder="Tutorial ..." name="tutorial"></textarea><br />
<select name="subID">
<?php
foreach($categories as $organizes){
?>
<option value="<?php echo $organizes['id']; ?>"><?php echo $organizes['categoryName']; ?></option>
<?php

}

?>
</select><br />
<input type="submit" value="Submit" />
<input type="hidden" value="addProduct" name="user" />
</form>


و این هم کد PHP :



case'addProduct':{

$newFileName = '';
$newPSDName = '';
$newEPSName = '';

list($file, $psd, $eps) = array($_FILES['file'], $_FILES['psdAttachment'], $_FILES['epsAttachment']);

$fileMimes = array(
'image/gif' => 'gif',
'image/jpeg' => 'jpg',
'image/png' => 'png',
);

$psdMimes = array(
'image/vnd.adobe.photoshop' => 'psd',
);

$epsMimes = array(
'image/eps' => 'eps',
);

if(in_array($file['type'], array_keys($fileMimes)) && is_uploaded_file($file['tmp_name'])) {
$newName = md5($file['name'] . time() . rand(1, 99999));
if(move_uploaded_file($file['tmp_name'], 'uploads/' . $newName . '.' . $fileMimes[$file['type']])) {
echo '<div style="font-family:Segoe UI;">Your File Uploaded!</div>';
}
}

if(in_array($psd['type'], array_keys($psdMimes)) && is_uploaded_file($psd['tmp_name'])) {
$newPSDName = md5($psd['name'] . time() . rand(1, 99999));
if(move_uploaded_file($psd['tmp_name'], 'uploads/' . $newPSDName . '.' . $psdMimes[$psd['type']])) {
echo '<div style="font-family:Segoe UI;">Your PSD Uploaded!</div>';
}
}
if(in_array($eps['type'], array_keys($epsMimes)) && is_uploaded_file($eps['tmp_name'])) {
$newEPSName = md5($eps['name'] . time() . rand(1, 99999));
if(move_uploaded_file($eps['tmp_name'], 'uploads/' . $newEPSName . '.' . $epsMimes[$eps['type']])) {
echo '<div style="font-family:Segoe UI;">Your EPS Uploaded!</div>';
}
}

$objUser=new User();
$result=$objUser->addProduct($_POST['author'],$_POST['avatar'],$_POST['name'],$_POST['explanation'],$_POST['tutorial'],$_POST['subID'],$newName,$newPSDName,$newEPSName,$_POST['userID']);
if($result==0){
echo "<div style='font-family:Segoe UI'>Your Row Added !</div>";
header('Refresh:5;Location:Home.php');}
else{
echo "<div style='font-family:Segoe UI'>A Problem !</div>";
header('Refresh:5;Location:AddProduct.php');}}
break;

MMSHFE
دوشنبه 04 اسفند 1393, 13:30 عصر
یه print_r توی صفحه مقصد فرم از FILES_$ بگیرین ببینیم چی چاپ میشه.

ABZiko
دوشنبه 04 اسفند 1393, 22:04 عصر
بفرمائید :

Array (
[file] => Array (
[name] => Internet Download Manager.png
[type] => image/png
[tmp_name] => D:\Wamp\tmp\php20CD.tmp
[error] => 0
[size] => 22286
)
[psdAttachment] => Array (
[name] => Logo.psd
[type] => image/x-photoshop
[tmp_name] => D:\Wamp\tmp\php20CE.tmp
[error] => 0
[size] => 141301
)
[epsAttachment] => Array (
[name] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)
)

MMSHFE
سه شنبه 05 اسفند 1393, 09:28 صبح
اینو تست کنید. نباید مشکلی داشته باشه:

case 'addProduct':
list($file, $psd, $eps) = array($_FILES['file'], $_FILES['psdAttachment'], $_FILES['epsAttachment']);

$newFileName = '';
$newPSDName = '';
$newEPSName = '';

$fileMimes = array(
'image/gif' => 'gif',
'image/jpeg' => 'jpg',
'image/png' => 'png',
);

$psdMimes = array(
'image/vnd.adobe.photoshop' => 'psd',
);

$epsMimes = array(
'image/eps' => 'eps',
);

if($file['error'] == 0 && in_array($file['type'], array_keys($fileMimes))) {
$newFileName = md5($file['name'] . time() . rand(1, 99999));
if(move_uploaded_file($file['tmp_name'], 'uploads/' . $newFileName . '.' . $fileMimes[$file['type']])) {
echo '<div style="font-family:Segoe UI;">Your File Uploaded!</div>';
}
}

if($psd['error'] == 0 && in_array($psd['type'], array_keys($psdMimes))) {
$newPSDName = md5($psd['name'] . time() . rand(1, 99999));
if(move_uploaded_file($psd['tmp_name'], 'uploads/' . $newPSDName . '.' . $psdMimes[$psd['type']])) {
echo '<div style="font-family:Segoe UI;">Your PSD Uploaded!</div>';
}
}
if($eps['error'] == 0 && in_array($eps['type'], array_keys($epsMimes))) {
$newEPSName = md5($eps['name'] . time() . rand(1, 99999));
if(move_uploaded_file($eps['tmp_name'], 'uploads/' . $newEPSName . '.' . $epsMimes[$eps['type']])) {
echo '<div style="font-family:Segoe UI;">Your EPS Uploaded!</div>';
}
}
$user = new User;
$result = $user->addProduct($_POST['author'], $_POST['avatar'], $_POST['name'], $_POST['explanation'], $_POST['tutorial'], $_POST['subID'], $newFileName, $newPSDName, $newEPSName, $_POST['userID']);
if($result == 0) {
echo '<div style="font-family:Segoe UI;">Your Row Added !</div>';
header('Refresh:5;Location:Home.php');
}
else {
echo '<div style="font-family:Segoe UI;">A Problem !</div>';
header('Refresh:5;Location:AddProduct.php');
}
break;

ABZiko
سه شنبه 05 اسفند 1393, 15:19 عصر
ممنون استاد ، ولی بارم نه فایل ها PSD,EPS رو انتقال می ده و نه اسم همین دو فایل رو ثبت می کنه.

MMSHFE
سه شنبه 05 اسفند 1393, 18:29 عصر
توی پیام خصوصی تیم ویور بدین ببینم مشکل چیه. کد که ظاهراً مشکلی نداره.