www.webdeveloper.com
Results 1 to 3 of 3

Thread: validating a multi-image upload

  1. #1
    Join Date
    Mar 2010
    Posts
    281

    validating a multi-image upload

    Hi All,
    Im building a CMS where 3 images need to be uploaded. I'm trying to validate by checking for 2 things (at least for now). One, that it's not empty and
    Two, the image must be a .gif

    3 images in an upload means a 2 dimensional array. I've accessed via 2 foreach loops but am trying to figure out the syntax isolate and check the individaul key => value pairs.

    echoing the 2 foreach loops produces this...

    Array
    (
    [add_acchdr_off] => Array (
    [name] => accodion_header_off.gif
    [type] => image/gif
    [tmp_name] => /Applications/XAMPP/xamppfiles/temp/phpGR9rW9
    [error] => 0
    [size] => 420681
    )
    [add_acchdr_on] => Array (
    [name] => accodion_header_on.gif
    [type] => image/png
    [tmp_name] => /Applications/XAMPP/xamppfiles/temp/php1B91mn
    [error] => 0
    [size] => 200434
    )
    [add_main_pic] => Array (
    [name] =>
    [type] =>
    [tmp_name] =>
    [error] => 4
    [size] => 0
    )
    )

    i want to access the [error] and test if it's 4 (means it's empty), and also the [type] to see if it's a .gif or not. how can i do that?

    any help would be great, thanks!

    my code so far is this,
    $imgArr = array($add_acchdr_off, $add_acchdr_on, $add_main_pic);
    foreach ($imgArr as $Img) {
    foreach($Img as $key => $val) {
    echo $key . ' ' . $val;
    //put some val code here
    }
    }
    Last edited by toptomato; 06-13-2012 at 08:44 AM.

  2. #2
    Join Date
    Jun 2012
    Posts
    6
    I know this doesn't answer your question, but do you have any links on how to go about uploading multiple images? I'm working on a 2 image uploader and I want it to upload each image in a separate locations. Help would be much appreciated!

  3. #3
    Join Date
    Mar 2010
    Posts
    281
    Almost!, in fact i've answered my own question re: validating. Next i have to script how to move from temp to designated folder. I will post later if you want, let me know

    First off, to understand the Super Global Files array, i would do this, it shows you everything

    PHP Code:
    if(isset($_POST['submit'])) {
    echo 
    '<pre>'.print_r($_FILEStrue).'</pre>';

    don't know if this is 100%, i've distilled from my project and cut out stuff not relevant to img uploads.

    PHP Code:
    function valImg($img, &$theErrArr) {
    if(
    $img['error'] == ){
        
    //echo 'Img is empty, please choose an image';
        
    array_push($theErrArr'Img is empty, please choose an image before submitting');
        }

    if(
    $img['type'] != 'image/gif') {
        
    //echo '<p>Img type must a gif</p>';
        
    array_push($theErrArr'Img type must a gif');
        }     
    }

    function 
    display_errors($errArr) {
    $count count($errArr);
    for(
    $i=0;$i<$count;$i++) {
        echo 
    $errArr[$i] . '<br>';
        }
    }


    if(isset(
    $_POST['submit'])) {

    //create image vars
    $header_off $_FILES['header_off'];
    $header_on $_FILES['header_on'];
    $main_pic $_FILES['main_pic'];

    //I've chose to create array manually, but you could do with Super Globals //$_FILES[]
    $imgArr = array($header_off$header_on$main_pic);

    //the error array
    $addErrArr = array();

    foreach(
    $imgArr as $indImg) {
        
    valImg($indImg);
    }

    if(!empty(
    $addErrArr) {
        
    display_errors($addErrArr);
    } else {
        
    //Run Query, update tables, copy images to dir, etc. etc.
    }



Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center

"

"

X vBulletin 4.2.2 Debug Information

  • Page Generation 0.14748 seconds
  • Memory Usage 2,874KB
  • Queries Executed 15 (?)
More Information
Template Usage (33):
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (3)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (72):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates