2013-06-27 99 views
1

嗨,我從前端上傳文件,但現在的代碼只獲取圖像附件ID我想要的圖像url。從前端上傳圖片,並獲得其網址

function agp_process_woofile($file, $post_id){ 

    if ($_FILES[$file]['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'); 

    $attachment_id = media_handle_upload($file, $post_id); 

    add_post_meta($post_id, '_file_paths', $attachment_id); 

    $attachment_data = array(
    'ID' => $attachment_id, 
    'post_excerpt' => $caption 
); 

    wp_update_post($attachment_data); 

    return $attachment_id; 

} 

見attachment_id我想從這個函數獲取URL和更新網址爲 「_file_paths」 後元

+0

是否正確$ attachment_id = media_handle_upload($ file,$ post_id); $ attachment_url = wp_get_attachment_url($ attachment_id); add_post_meta($ post_id,'_file_paths',$ attachment_url); – Corlax

+0

你自己寫代碼了嗎?沒有代碼可以在代碼中獲取附件URL。 –

回答

2

喜找到解決方案,以便與你們:)

function agp_process_woofile($files, $post_id, $caption){ 


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

    $attachment_id = media_handle_upload($files, $post_id); 

$attachment_url = wp_get_attachment_url($attachment_id); 
    add_post_meta($post_id, '_file_paths', $attachment_url); 

    $attachment_data = array(
    'ID' => $attachment_id, 
    'post_excerpt' => $caption 
); 

    wp_update_post($attachment_data); 

    return $attachment_id; 

} 
1

使用默認sharig wordpress函數wp_handle_upload請參考 http://codex.wordpress.org/Function_Reference/wp_handle_upload

這裏我的示例代碼:

upload.html

<form action="" enctype="multipart/form-data" id="form" method="post" name="form"> 
<div id="upload"> 
<input id="file" name="file" type="file"> 
</div> 
<input id="submit" name="submit" type="submit" value="Upload"> 
</form> 

<div id="detail"> 
<div id="preview" style="height:100px;width:100px; display:none"> 
<img id="previewimg" src="" style="height:100px;width:100px;"> 
<img id="deleteimg" src="<?php echo plugins_url('/images/remove.png'__FILE__);?>"> 
</div> 

<div id="message"> 
<?php include "Function /upload.php";?> 
</div> 
</div> 

upload.php的

<?php 
include_once ABSPATH . 'wp-admin/includes/media.php'; 
include_once ABSPATH . 'wp-admin/includes/file.php'; 
include_once ABSPATH . 'wp-admin/includes/image.php'; 
require_once (ABSPATH . 'wp-includes/pluggable.php'); 
if (isset ($_POST ['submit'])) { 
    if (! function_exists ('wp_handle_upload')) 
     require_once (ABSPATH . 'wp-admin/includes/file.php'); 
    $uploadedfile = $_FILES ['file']; 
    if (! empty ($uploadedfile ['name'])) { 
     $upload_overrides = array (
      'test_form' => false 
     ); 
     $movefile = wp_handle_upload ($uploadedfile, $upload_overrides); 
     if ($movefile) { 
      echo "File is valid, and was successfully uploaded.\n"; 
     } else { 
      echo "Possible file upload attack!\n"; 
     } 
    } else { 
     echo "Please select the image to upload"; 
    } 
} 
?> 

upload.js`

jQuery(document).ready(function() { 
    // Function for Preview Image. 
    jQuery(function() { 
     jQuery(":file").change(function() { 

      if (this.files && this.files[0]) { 
       var reader = new FileReader(); 
       reader.onload = imageIsLoaded; 
       reader.readAsDataURL(this.files[0]); 
      } 
     }); 
    }); 
    function imageIsLoaded(e) { 
     jQuery('#message').css("display", "none"); 
     jQuery('#preview').css("display", "block"); 
     jQuery('#previewimg').attr('src', e.target.result); 
    }; 
    // Function for Deleting Preview Image. 
    jQuery("#deleteimg").click(function() { 
     jQuery('#preview').css("display", "none"); 
     jQuery('#file').val(""); 
    }); 
    // Function for Displaying Details of Uploaded Image. 
    jQuery("#submit").click(function() { 
     jQuery('#preview').css("display", "none"); 
     jQuery('#message').css("display", "block"); 
    }); 
});` 
3

對於前端上傳圖片只是創建簡單的形態後

<form method="post" enctype="multipart/form-data"> 
<input type="file" name="imagefile" /> 
<input type="submit" name="Submit" value="Submit" /> 
</form>

提交表單上傳圖片作爲附件在wordpress媒體如下。

if($_POST){ 
if (!function_exists('wp_generate_attachment_metadata')){ 
    require_once(ABSPATH . "wp-admin" . '/includes/image.php'); 
    require_once(ABSPATH . "wp-admin" . '/includes/file.php'); 
    require_once(ABSPATH . "wp-admin" . '/includes/media.php'); 
} 
if($_FILES) 
{ 
    foreach ($_FILES as $file => $array) 
    { 
     if($_FILES[$file]['error'] !== UPLOAD_ERR_OK){return "upload error : " . $_FILES[$file]['error'];}//If upload error 
     $attach_id = media_handle_upload($file,$new_post); 
     echo wp_get_attachment_url($attach_id);//upload file URL 
    } 
} 
}
+0

這doesnnt工作 – Tsea