میخوام یک فیلد اپلود درست کنم همو اتچ فایل

talesh

Active Member
سلام دوست عزیزی که به سوالم پاسخ دادی
یک مشکل اساسی دارم که اگه میشه کمکم کنید
من میخواهم یک دکمه بروز و یک دکمه اپلود داشته باشم
در حال می خواهم که این بروز بیاد فایل مورد نظر رو بگیره و هنگامی که اپلود رو زد بیاد تو
هاست بنده قرار بگیره
و بعد از ان بیاد ادرس فایل ذخیره شده را به من یعنی در زیر همون فیلد نمایش بده
ممنون میشم به سوالم پاسخ بدید
اگه توضیخ بیشتری بود بگین تا روشن تر توضیح بدم
بدرود
 

Masoud1365

مدیر انجمن
منظورت اینه که وقتی دکمه بروز رو زد یه جایی آپلود بشه حالا اگه دکمه آپلود رو زد آدرس و اینا رو بهت نشون بده اگرم نه که هیچی درسته ؟
 

talesh

Active Member
سلام ممنون که به سوال من رسیدگی کردی
درسته میخوام اپلودر بسازم و وقتی اپلود شد
ادرسی که فایل اپلود شده بیاد پائین همون جایی که اپلود میکنیم
ممنون
 

Masoud1365

مدیر انجمن
واسه این کار که کلی اسکریپت آماده هست !
یه سری توی سایت hotscripts.com بزنید !
اگر با کلاس و اینا هم بلد هستید کار کنید یه سری به سایت phpclasses.org بزنید !
 

Masoud1365

مدیر انجمن
واسه این کار که کلی اسکریپت آماده هست !
یه سری توی سایت hotscripts.com بزنید !
اگر با کلاس و اینا هم بلد هستید کار کنید یه سری به سایت phpclasses.org بزنید !
 

talesh

Active Member
سلام دوست عزیز من تو سایتی که معرفی کردین زیاد اشنایی ندارم با سیستم کاریش شما کدی رو نمیشناسین اگه دارین ممنون میشم به من ارائه کنین
ممنون
 

ahmad_m1234

Active Member
برای این کار باید با ایجکس این کار را انجام بدی
- اول باید پلاگینی که واست اتچ می کنم دانلود کنی
- دوم یک فایل php می سازی و کد پایین کپی می کنی
PHP:
<?php
	$error = "";
	$msg = "";
	$fileElementName = 'fileToUpload';
	if(!empty($_FILES[$fileElementName]['error']))
	{
		switch($_FILES[$fileElementName]['error'])
		{

			case '1':
				$error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
				break;
			case '2':
				$error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
				break;
			case '3':
				$error = 'The uploaded file was only partially uploaded';
				break;
			case '4':
				$error = 'No file was uploaded.';
				break;

			case '6':
				$error = 'Missing a temporary folder';
				break;
			case '7':
				$error = 'Failed to write file to disk';
				break;
			case '8':
				$error = 'File upload stopped by extension';
				break;
			case '999':
			default:
				$error = 'No error code avaiable';
		}
	}elseif(empty($_FILES['fileToUpload']['tmp_name']) || $_FILES['fileToUpload']['tmp_name'] == 'none')
	{
		$error = 'No file was uploaded..';
	}else 
	{
			$msg .= "image/".$_FILES['fileToUpload']['name'];
			 
			 @unlink($_FILES['fileToUpload']);
	}		
	echo "{";
	echo				"error: '" . $error . "',\n";
	echo				"msg: '" . $msg . "'\n";
	echo "}";
?>
- سوم در صفحه ای که می خواهی عملیات آپلود را انجام بدی
کد زیر بین تگ head بزار
کد:
<script type="text/javascript" src="ajaxfileupload.js"></script>
کد:
	<script type="text/javascript">
	function ajaxFileUpload()
	{
		$("#loading")
		.ajaxStart(function(){
			$(this).show();
		})
		.ajaxComplete(function(){
			$(this).hide();
		});
		
		var val;
			$('.field input[type="radio"]:checked').each(function() { 
        	val = $(this).val();
			});

		$.ajaxFileUpload
		(
			{
				url:'doajaxfileupload.php,
				secureuri:false,
				fileElementId:'fileToUpload',
				dataType: 'json',
				data:{name:'logan', id:'id'},
				success: function (data, status)
				{
					if(typeof(data.error) != 'undefined')
					{
						if(data.error != '')
						{
							alert(data.error);
						}else
						{
							$("#img").attr("src",data.msg);
						}
					}
				},
				error: function (data, status, e)
				{
					alert(e);
				}
			}
		)
		
		return false;

	}

	</script>
-چهارم تگ img می زاریم
کد:
<img src="" id="img"  />
- پنجم کد زیر هم بزارید
کد:
<form name="form" action="" method="post" enctype="multipart/form-data">
<input id="fileToUpload" type="file" size="45" name="fileToUpload">
<input type="button" value="Upload" id="buttonUpload" onClick="return ajaxFileUpload();" />
<img id="loading" src="loading.gif" style="display:none;">

اگر مشکلی داشتی بگو تا بیشتر راهماییت کنم
 

پیوست ها

  • ajaxfileupload.zip
    5.9 کیلوبایت · بازدیدها: 6

talesh

Active Member
سلام
دوست عزیز من با این مشکل در انجمن مواجعه شدم
پیغام انجمن
شما وارد نشده اید و یا اجازه مشاهده این صفحه را ندارید. این موضوع میتواند بخاطر موارد زیر باشد:

البته وارد شدم و صحیح هم بود اما وقتی میخوام برم تو فایلی که شما اتچ کردین رو دانلود کنم میگه وراد شوید
 

talesh

Active Member
سلام دکمه اپلو اصلان کار نمیکنه
من فایلو براتون اتچ کردم ببینین درسته
اگر میشه فایلو درست کنین بدین گفتم من با php کار نکردم
بازم ممنون
 

پیوست ها

  • index.zip
    7.2 کیلوبایت · بازدیدها: 2

ahmad_m1234

Active Member
ببخشید چند تا مشکل داشت که حل کردم میتونید امتحان کنید
مشکل داشید بگید تا درست کنم
 

پیوست ها

  • aupload.zip
    40.7 کیلوبایت · بازدیدها: 12

talesh

Active Member
ممنون و خیلی خیلی ممنون
و تنها مشکلی که حد اقل 60 % مشکل اینجاست که من میخواهم ادرس فایل اپلود شده را برای من نمایش بده
 

ahmad_m1234

Active Member
خوب واسه اینکار کد زیر به جای فایل index.php بزار
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="ajaxfileupload.js"></script>

</head>

<body>
<script type="text/javascript">
    function ajaxFileUpload()
    {
        $("#loading")
        .ajaxStart(function(){
            $(this).show();
        })
        .ajaxComplete(function(){
            $(this).hide();
        });
 

        $.ajaxFileUpload
        (
            {
                url:'doajaxfileupload.php',
                secureuri:false,
                fileElementId:'fileToUpload',
                dataType: 'json',
                data:{name:'logan', id:'id'},
                success: function (data, status)
                {
                    if(typeof(data.error) != 'undefined')
                    {
                        if(data.error != '')
                        {
                            alert(data.error);
                        }else
                        {
                            $("input[name=upload]").val(data.msg);
                        }
                    }
                },
                error: function (data, status, e)
                {
                    alert(e);
                }
            }
        )
       
        return false;

    }

    </script>

<form name="form" action="" method="post" enctype="multipart/form-data">
<input id="fileToUpload" type="file" size="45" name="fileToUpload">
<input type="button" value="Upload" id="buttonUpload" onClick="return ajaxFileUpload();" />
<img id="loading" src="loading.gif" style="display:none;">
</form>
<input type="text" name="upload" value="" size="50" />
</body>
</html>
 

talesh

Active Member
دست در نکنه خیلی بزرگواری کردی اینو به من گفتی من ایدی تو سیو میکنم مشکلی بود ازت میپرسم
در ضمن ایا راهی داره بیایم اینو براش محدودیت بزاریم یعنی فقط فایل های zip رو قبول کنه
 
آخرین ویرایش:

ahmad_m1234

Active Member
واسه این کار هم می شود و باید نوع فایل بدست بیاورید
PHP:
<?php

	function checkExt($type)
	{		
		if ($type != 'application/zip')
			return false;
		else
			return true;
	}
    $error = "";
    $msg = "";
    $fileElementName = 'fileToUpload';
    if(!empty($_FILES[$fileElementName]['error']))
    {
        switch($_FILES[$fileElementName]['error'])
        {

            case '1':
                $error = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
                break;
            case '2':
                $error = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form';
                break;
            case '3':
                $error = 'The uploaded file was only partially uploaded';
                break;
            case '4':
                $error = 'No file was uploaded.';
                break;

            case '6':
                $error = 'Missing a temporary folder';
                break;
            case '7':
                $error = 'Failed to write file to disk';
                break;
            case '8':
                $error = 'File upload stopped by extension';
                break;
            case '999':
            default:
                $error = 'No error code avaiable';
        }
    }elseif(empty($_FILES['fileToUpload']['tmp_name']) || $_FILES['fileToUpload']['tmp_name'] == 'none')
    {
        $error = 'No file was uploaded..';
	}elseif(!checkExt($_FILES['fileToUpload']['type']))
	{
			$error = 'File Type is Not Allowed';
    }else
    {
            $msg .= "image/".$_FILES['fileToUpload']['name'];
			
			move_uploaded_file($_FILES['fileToUpload']['tmp_name'],"image/". $_FILES['fileToUpload']['name']);
           
            @unlink($_FILES['fileToUpload']);
    }       
    echo "{";
    echo                "error: '" . $error . "',\n";
    echo                "msg: '" . $msg . "'\n";
    echo "}";
?>
 

talesh

Active Member
سلام
پس میتونم براش خودم دسترسی بزارم
یعنی محدودیتشو دست کاری کنم
کجای کدشو باید دست کاری کنم
و اگر هم بخوام استایل بدم باید چیکار کنم
در ضمن من اینو تو لوکال تست کردم.ایا وقتی اینو رو هاست پیاده سازی کردم ادرسی به صورت مثال زیر به من میده؟یا نه فقط اسم پوشه و اسم فایلو میده من میخوام وقتی اپلود شد به اینصورت ادرس دهی کنه مثال

http://test.com/upload/files/test.zip

دست در د نکنه
:rose:
 
آخرین ویرایش:

ahmad_m1234

Active Member
سلام
برای محدودیت سازی تابع زیر را در doajaxfileupload.php تغییر دهید
PHP:
    function checkExt($type) 
    {         
        if ($type != 'application/zip') 
            return false; 
        else 
            return true; 
    }
که لازمه mime type را بدست بیاورید
خوب واسه استایل هم تو index.php هست
واسه تغییر دادن آدرس خروجی مقدار متغیر زیر را تغییر می دهید
PHP:
$msg .= "image/".$_FILES['fileToUpload']['name'];
به :
PHP:
$msg .= "http://test.com/image/".$_FILES['fileToUpload']['name'];
 

talesh

Active Member
ووقتی که اپلود شد هشداری بدهد که بگوید (لطفا ادرس زیر را در محتوا بچسبانید)
ممنون
 

ahmad_m1234

Active Member
بعد از
PHP:
$("input[name=upload]").val(data.msg);
باید این را بزارید
PHP:
alert('لطفا ادرس زیر را در محتوا بچسبانید');
 

جدیدترین ارسال ها

بالا