<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#8235;Htm - אחלה טיפים לבניית אתרים &#187; JS&#8236;</title>	<atom:link href="http://www.htm.co.il/tag/js/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.htm.co.il</link>
	<description>&#8235;מדריכים ומאמרים בנושא בניית אתרים. כל יום משהו חדש ללמוד, וליישם.&#8236;</description>	<lastBuildDate>Wed, 18 Jan 2012 09:32:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>il</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8235;העלאת תמונה בלחיצה אחת fancyUpload&#8236;</title>		<link>http://www.htm.co.il/2009/09/09/%d7%94%d7%a2%d7%9c%d7%90%d7%aa-%d7%aa%d7%9e%d7%95%d7%a0%d7%94-%d7%91%d7%9c%d7%97%d7%99%d7%a6%d7%94-%d7%90%d7%97%d7%aa-fancyupload/</link>
		<comments>http://www.htm.co.il/2009/09/09/%d7%94%d7%a2%d7%9c%d7%90%d7%aa-%d7%aa%d7%9e%d7%95%d7%a0%d7%94-%d7%91%d7%9c%d7%97%d7%99%d7%a6%d7%94-%d7%90%d7%97%d7%aa-fancyupload/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 08:39:16 +0000</pubDate>
		<dc:creator>&#8235;אורן רוט&#8236;</dc:creator>				<category><![CDATA[בניית אתרים]]></category>
		<category><![CDATA[fancyUpload]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[העלאת קבצים]]></category>
		<category><![CDATA[קבצים]]></category>
		<category><![CDATA[תמונות]]></category>

		<guid isPermaLink="false">http://www.htm.co.il/?p=262</guid>
		<description><![CDATA[&#8235;אובייקט העלאת הקבצים file הוא אובייקט מיושן בעל יכולות מאוד מוגבלות. בואו לגלות כיצד להעלות כמה קבצים בו זמנית, לעקוב אחרי התקדמות העלאה ולסנן סוגי קבצים. כל זה באמצעות שימוש בכמה ספריות JS ואובייקט פלאש אחד.&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>חלק בלתי נפרד מעולם הטפסים הוא האובייקט input מסוג file. מטרתו של אובייקט זה הוא לעלות קבצים מצד הלקוח לצד השרת.<br />
למי שעדיין לא הבין על מה אני מדבר:</p>
<input type="file" />
<p>הבעיה באובייקט הזה שהוא מאוד מיושן והיכולות שלו מאוד מוגבלות.<br />
במדריך הבא אני אסביר לכם כיצד להחליף את אובייקט העלאת הקבצים באלמנט חכם יותר שמסוגל לעלות כמה קבצים בו זמנית ולתת אינפורמציה בזמן אמת להתקדמות ההעלאה.</p>
<div id="DemoAndCodeBtns"><a href="http://www.htm.co.il/lab/fancyUpload/new/build.html"><span>&lt;</span>דוגמא<span>&gt;</span></a><a href="http://www.htm.co.il/lab/fancyUpload/new/upload.rar"><span>&lt;</span>קוד<span>&gt;</span></a></div>
<p>כולנו משתמשים באובייקט העלאת הקבצים, אם זה בתור משתמשי קצה &#8211; בחשבון המייל שלנו כאשר אנחנו מצרפים קבצים, או בתור בוני אתרים &#8211; בתוך מערכות הניהול של האתרים שלנו.</p>
<p>עד היום כולנו השתמשנו באובייקט המיושן input-&gt;file מתוך הDOM. החסרונות העיקריים של אובייקט זה הם:</p>
<ul>
<li>אפשרות להעלאה אחת כל פעם</li>
<li>לא נותן אינדיקציה להתקדמות ההעלאה</li>
<li>אין אפשרות לסנן את סוגי הקבצים אותם אנחנו מעוניינים לקבל</li>
</ul>
<p>הפתרון שמוצע במאמר זה עולה על החסרונות של האובייקט ה-file המיושן ונותן תחליף שמשלב את ספריית הגאווה-סקריפט mootools ואובייקט פלאש.</p>
<h3>פתרון אלגנטי</h3>
<p style="text-align: right;">
<p style="text-align: right;">הפתרון נלקח מתוך האתר <a href="http://digitarald.de/project/fancyupload/" target="_blank"><span dir="rtl"><em>digitarald.de</em></span></a><span dir="rtl"><em> </em>בעצם מה שעושים הוא לקחת את הטופס הרגיל עם אובייקט הישן ולהחליף אותו בפלאש, עם שילוב של כמה סקריפטים בגאווה-סקריפט &#8211; זה עושה את העבודה.</span></p>
<p style="text-align: right;"><span dir="rtl">אני אתן כאן דוגמא למערכת שמעלה תמונות אבל אתם יכולים לקחת את הקוד ולהתאים אותו לכל מטרה.<br />
</span></p>
<p style="text-align: right;"><span dir="rtl">על מנת להתחיל לעבוד הורידו את קובץ ה-rar מתוך הכפתור &quot;קוד&quot; שנמצא בראש המאמר (כמובן שאתם יכולים לראות את התוצאה הסופית בכפתור &quot;דוגמא&quot;). </span></p>
<p style="text-align: right;"><span dir="rtl">חלצו את הקבצים מקובץ ה-rar ותקבלו 4 תיקיות וקובץ html אחד.</span></p>
<p style="text-align: right;"><strong><span dir="rtl">התיקיות:</span></strong></p>
<ul>
<li><span dir="rtl"><em>assets </em>- תקיית התמונות </span></li>
<li><span dir="rtl"><em>css</em> &#8211; מכיל את קובץ style.css</span></li>
<li><span dir="rtl"><em>server</em> &#8211; מכיל את קוד הPHP וקובץ Log ששומר בתוכו לוג לכל העלאה</span></li>
<li><span dir="rtl"><em>source</em> &#8211; מכיל את כל קבצי הJS ובנוסף קובץ פלאש שעתיד להחליף את אובייקט ה-file</span></li>
</ul>
<p>טוב עכשיו אחרי שעשינו סקירה מהירה על מה יש לנו נעבור לתכלס</p>
<h3>מה עושים?</h3>
<p>1. מעלים את כל הקבצים לשרת</p>
<p>2. נותנים הרשאת כתיבה (666) לקובץ הלוג (server-&gt;script.log)</p>
<p>3. עורכים את קובץ script.php מתיקיית server</p>
<p>טוב שני שלבים הראשונים ברורים ולכן נעבור לשלב השלישי-</p>
<p>פתחתם את קובץ script.php בתוכנת העריכה האהובה עליכם (אני אוהב את ++notepad, קלה ונוחה), מצאתם את השורות האלה (מתחיל בשורה 115):</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:580px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$error</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Filedata'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'../images/'</span> <span style="color: #339933;">.</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'Filedata'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$error</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'בעיה בהעלאה לשרת'</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>מה שבעצם הקוד הזה עושה הוא, לאחר כל הבדיקות הוא רואה שאין error ואז הוא משתמש בפונקצייה <em>move_uploaded_file</em> של PHP.</p>
<p>הפונקציה של php מקבלת שתי פרמטרים. הראשון, מיקום הקובץ הזמני (לאחר שעושים העלאה לקובץ באופן אוטומטי הוא ממומקם בנתיב זמני), אין טעם לשנות אותו. הפרמטר השני, שאותו <strong>אתם צריכים לערוך, </strong>הוא לאן הקובץ יועתק בשרת שלכם. אני בחרתי את תיקיית images שנמצאת בתיקייה הראשית שלי. כמובן שאני משרשר לפרמטר השני את שם הקובץ וכך הוא ישמר בתיקייה images עם שם הקובץ המקורי.</p>
<div class="warning">שימו לב! המיקום שאתם נותנים בפרמטר השני הוא מיקום יחסי לקובץ הPHP! ולא לקובץ הhtml.</div>
<p>זהו זה, עכשיו מעלה הקבצים המשכולל שלכם עובד. אתם מוזמנים לשחק עוד בקובץ script.php גום בקובץ script.js וכך לשנות את ההגדרות לצרכים שלכם.</p>
<h3>עוד באותו נושא:</h3><ul class="related_post"><li  class="relatedPost"><a href="http://www.htm.co.il/2009/03/19/lightbox-%d7%94%d7%95%d7%a8%d7%90%d7%95%d7%aa-%d7%a9%d7%99%d7%9e%d7%95%d7%a9/" title="Lightwindow &#8211; הוראות שימוש (המדריך המלא)"><img src="http://htm.co.il/wp-content/post-images/210.jpg" />Lightwindow &#8211; הוראות שימוש (המדריך המלא)</a><div style="clear: both;"></div></li><li  class="relatedPost"><a href="http://www.htm.co.il/2009/02/22/lightbox-%d7%94%d7%93%d7%a8%d7%9a-%d7%9c%d7%94%d7%a6%d7%99%d7%92-%d7%aa%d7%9e%d7%95%d7%a0%d7%95%d7%aa-%d7%95%d7%a2%d7%95%d7%93/" title="LightBox &#8211; הדרך להצגת גלריית תמונות"><img src="http://htm.co.il/wp-content/post-images/171.jpg" />LightBox &#8211; הדרך להצגת גלריית תמונות</a><div style="clear: both;"></div></li></ul></div>]]></content:encoded>			<wfw:commentRss>http://www.htm.co.il/2009/09/09/%d7%94%d7%a2%d7%9c%d7%90%d7%aa-%d7%aa%d7%9e%d7%95%d7%a0%d7%94-%d7%91%d7%9c%d7%97%d7%99%d7%a6%d7%94-%d7%90%d7%97%d7%aa-fancyupload/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>



