הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   PHP | מערך קבצים (https://hosts.co.il/forums/showthread.php?t=62048)

Labs 17-04-08 21:02

PHP | מערך קבצים
 
שלום הייתי רק רוצה לברר
שאני עושה משהו נכון ולא הולך סתם לעבוד:P
יש לי 10 שדות של העלאת קבצים
עם השם
PHP קוד:

pic[] 

אני יוכל להריץ לולאת FOREACH למערך PIC כדי לעלות את כל התמונות שהעלו?
או שאני יתקל בבעיות?

Tomer 17-04-08 21:58

אתה יכול. זו הדרך לעשות את זה.

Labs 17-04-08 22:29

ציטוט:

נכתב במקור על ידי Tomer (פרסם 625088)
אתה יכול. זו הדרך לעשות את זה.

אוקיי אגש לעבודה:)

שאלה קטנה נגיד ולא מילאו את כל השדות
עדיין נכנס למערך תא ריק או שזה פשוט לא נכנס למערך?
ובמידה ונכנס האם קיימת פונ' שגוזרת לי את כל התאים הריקים במערך?

4ior 17-04-08 23:18

תבדוק אם הוא מלא לפני שאתה נכנס ללולאה..
sizeof($pic)>0
או
count($pic)>0

Labs 17-04-08 23:34

כן עשיתי משהו דומה
בדיקה של IF פשוטה אם יש תוכן או אין

עכשיו אני קצת לא מצליח פה עם הסוגריים והמשתנים התבלבתי לגמרה
אני מדביק פה חתיכות קוד רלוונטיותV
PHP קוד:

$pic[]=$_POST['pic'];
foreach (
$pic as $k => $v) {
$file_name $HTTP_POST_FILES['pm']['name'];


בשורה הזאת
$file_name = $HTTP_POST_FILES['pic']['name'];
איך אני אמור לכתוב את זה
הרי התוכן של התא נמצא ב$V
אז איך אני פועל עם זה?


תודה לכל העוזרים:)

Tomer 17-04-08 23:35

מוסיף [$V] בסוף המערך.

$HTTP_POST_FILES['pm']['name'][$V]

Labs 17-04-08 23:54

עדיין לא יוצא
אני יתן את הקוד הכמעט מלא אולי זה יעזור...
PHP קוד:



$file_ext_allow 
= array("gif","jpg","jpeg","png","bmp","JPG","JPEG","GIF","PNG","BMP");
$dottt=".";
switch (
$_GET['act']) {
case 
"Gupload1":
$pic[]=$_POST['pic'];
$t[]=$_POST['t'];
$folder="gallery/".$usernamef;
    if (!(
is_dir($folder))){
    
mkdir("$folder");
}
foreach (
$pic as $k => $v) {
    if (
$v!="") {
if (!(
is_numeric($te))) {
$testt=$t['$k'];
$temysql_real_escape_string($testt);
}


// al tityahasu 
// num id
$numid mysql_query("select * from `gpic`"); 
$numid mysql_num_rows($numid);
if (
$numid=="") {
$id=1;
} else {
$y=0;
for (
$ii=1;$ii<=$numid;$ii++) {
$nuum mysql_query("select * from `gpic` WHERE `id`= '$ii'"); 
$nuum mysql_num_rows($nuum);
if (
$nuum=="") {
$id=$ii;
$ii=999999999999;
$y=1;
}
}
if (
$y==0) {
$id=$numid+1;
}
}
// end num id
// sof shel al tityahasu


$file_name $HTTP_POST_FILES[$pic]['name'][$v];
echo 
"$file_name";
echo 
"<br />";
$msiu=getlast($file_name);
$new_file_name=$id.$dottt.$msiu;
    
$path"gallery/".$usernamef."/".$new_file_name;
echo 
"$path";
echo 
"<br />";
for(
$i=0;$i<count($file_ext_allow);$i++)
        {
            if (
getlast($file_name)!=$file_ext_allow[$i])
                
$test.="~~";
        }
$exp=explode("~~",$test);
        if (
count($exp)!=(count($file_ext_allow)+1))
        {
if(
copy($HTTP_POST_FILES['pic']['tmp_name'], $path))
{
$rashi=1;
// סוף העלאת תמונות

// al tityahasu 
$add "INSERT INTO gpic (id, user, last, ko) VALUES ('$id', '$usernamef', '$msiu', '$te')";
mysql_query($add); 

זה מה שזה מציג:

Warning: Illegal offset type in /home/mdl/public_html/myprofilem.php on line 91

gallery/Alex/1.
סוג קובץ אסור

הGALLERY.. זה הדרך שאיתה הכל בסדר
והסוג קובץ אסור וה1.
הוא לא יכול לקחת סיומת
בגלל שהשורה לפני זה
אמור להיות שם שם הקובץ אבל הוא לא מופיע בגלל הדבר הזה עם המערכים

Tomer 18-04-08 00:39

בכל מקום שאתה ניגש את המערך $HTTP_POST_FILES אתה צריך להוסיף בסוף [$v] .

Labs 18-04-08 00:53

ציטוט:

נכתב במקור על ידי Tomer (פרסם 625152)
בכל מקום שאתה ניגש את המערך $HTTP_POST_FILES אתה צריך להוסיף בסוף [$v] .

PHP קוד:

$file_name $HTTP_POST_FILES[$pic]['name'][$v]; 

|עצוב|

WebProject 18-04-08 12:23

הוקפץ לבקשת פותח האשכול.


כל הזמנים הם GMT +2. הזמן כעת הוא 18:31.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ