[wp-hackers] Allow users to upload their own images - hook to use?

Gregory Lancaster greglancaster71 at gmail.com
Thu Sep 12 16:25:01 UTC 2013


Im not sure how that would work.  Right now I am using a form I made, using
wpdb to drop it into my custom table.  But the file is handles by the
insert_attachment. It creates a post attachment, but I dont see a way to
link up the post attachment ID to my custom table since it all happens on
submit.

My code:


///FORM CODE///


<form name="log_data" method="post" action="" enctype="multipart/form-data"
onsubmit="setTimeout('location.reload()', 500);" />
  <input type="hidden" name="user_id" value="<?php echo $current_user->ID
?>"/>
  <input type="number" step="any" class="form-control" placeholder="Value"
name="length" value="" />
  <br />
  <input type="number" step="any" class="form-control" placeholder="Value"
name="ground" value="" />
  <br />
  <label for="date">Week Of:</label>
  <input type="date" name="date" class="form-control" value="" />
  <br />
<input type="file" name="file" value="">
  <br />
  <input type="submit" name="submit" value="submit" class="btn
btn-primary"/>
</form>
</div>

///SUBMIT FORM CODE

$post_id = NULL;
global $wpdb;
if ($_FILES) {
  foreach ($_FILES as $key => $value) {
    $newupload = insert_attachment($file, $post_id);
    // $newupload returns the attachment id of the file that
    // was just uploaded. Do whatever you want with that now.




if (isset($_POST['submit'])) {
$wpdb->insert(wp_jo_plugin_options, array (
    'user_id' => $_POST['user_id'],
    'length'  => $_POST['length'],
    'ground'  => $_POST['ground'],
    'date'    => $_POST['date'],
'file' => $_FILES['file'],
));
        }
    }
}


///FILE HANDLING FUNCTION

function insert_attachment($file_handler,$post_id,$setthumb='false') {

  // check to make sure its a successful upload
  if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false();

  require_once(ABSPATH . "wp-admin" . '/includes/image.php');
  require_once(ABSPATH . "wp-admin" . '/includes/file.php');
  require_once(ABSPATH . "wp-admin" . '/includes/media.php');

  $attach_id = media_handle_upload( $file_handler, $post_id );

  return $attach_id;
}




On Thu, Sep 12, 2013 at 6:35 AM, J.D. Grimes <jdg at codesymphony.co> wrote:

>
> On Sep 11, 2013, at 7:01 PM, BenderisGreat <greglancaster71 at gmail.com>
> wrote:
>
> > Wait this could be the answer to everything I need done.  You said I can
> > attach it to a post, so each users uploads would be associated to their
> > specific post.  If I am doing that is it also possible to associate the
> data
> > I am saving with my form to that post as well?  How would that be done?
> > custom fields or something?
>
> Yes, you can do that using post metadata AKA custom fields.
>
> http://codex.wordpress.org/Function_Reference/add_post_meta
>
> > Last followup question - how
> > would I take the post->id from the image upload and drop it into my
> table.
> > (so each entry is properly matched up with the correct image)
>
>
> The post ID is returned by wp_insert_attachment():
>
>
> http://codex.wordpress.org/Function_Reference/wp_insert_attachment#Return_Values
>
> So you would just need to use $wpdb->insert() with that post ID (if you
> are going to use the custom table instead of post meta).
>
> http://codex.wordpress.org/Class_Reference/wpdb#INSERT_rows
>
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>


More information about the wp-hackers mailing list