2017-02-25 22 views
0

私は現在Wysihtml5 HTMLテキストエディタを使用しています。それはうまくいく。しかし、今はAmazon S3バケットに挿入した画像を保存したいと思っています。Wysihtml5:挿入したイメージをサーバーにダウンロードする方法は?

誰かがURLから画像を挿入すると、その画像は自分のサーバーまたはバケットにあるはずです。

現在、Wysihtml5エディタは通常、画像ソースを保持しています。 こちらをご覧ください:http://bootstrap-wysiwyg.github.io/bootstrap3-wysiwyg/

enter image description here

私は、インサート画像を押すと、

  1. それは次に
  2. それは私自身のサーバーのURLパスで画像の古いソースURLを交換する必要があります私のサーバーに画像を保存する必要があります

どのようにAjaxを使って画像のダウンロードのための挿入画像ボタンをトリガーします要求?この機能を実装する前に私の措置を講じるべきですか?ここで

+0

私はそれをチェックするが、それはproperly..Heyを働いていません代わりに次のように使用してください:http://bootstrap-wysiwyg.github.io/bootstrap3-wysiwyg/ –

+0

私はあなたを理解していませんmairShahYousafzai?何がうまくいかなかったか、何を確認しましたか? – hakiko

+0

私は画像の挿入機能をチェックしていましたが、うまく機能しませんでした。まず、 'https'リンクから画像を追加することができず、余分なパラメータを持つリンクから画像を追加できず、' http '代わりに一度だけ画像を挿入した後、画像を削除してもう一度やり直してみたら、もう画像を挿入していませんでした。何らかのバグかもしれません...説明のように、それはもはや維持されていないと言われています..! :D –

答えて

0

は、あなたがそれを行うことができます正確にどのようにある:http://huntedhunter.com/uploadimage/

は、私はちょうど少し前にこれを書いた:

貼り付けイベントベースアップローダースクリプト:

はリンクを見てみましょう。 !

仕組み:

誰かがその画像のURLは、Ajaxのポスト要求ファイルを通じてupload.phpに投稿された入力フィールドにHTTPサイトの画像リンクを貼り付け、upload.phpファイルが画像をダウンロードし、保存するときにちょうどいいそれはローカルサーバー上で、次に新しい画像URLが現在のページへのajaxレスポンスで受信されます。したがって、あなたはレスポンスで何でもできます。ここで

は、コードは次のとおりです。

HTML:

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"> 
</script> 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> 
<script type="text/javascript"> 
$(document).ready(function() { 
$('#insert').on('input', function(e) { 
    var $val = $('#insert').val(); 
    $.ajax({ 
     url: 'upload.php', 
     type: 'POST', 
     data: { imageurl: $val} , 
     success: function (response) { 
      $('#newimageurl').val(response); 
      $('#showimage').attr('src', response); 
     }, 
     error: function() { 
      //your error code 
     } 
    }); 
}); 
}); 
</script> 
<title></title> 
</head> 
<body> 
<form class="form-horizontal" style="padding: 10%"> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="ImageURL">Insert Image: </label> 
     <div class="col-sm-10"> 
      <input class="form-control" id="insert" placeholder="Enter ImageURL" type="text"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="ImageURL">Your New Image URL:</label> 
     <div class="col-sm-10"> 
      <input class="form-control" id="newimageurl" placeholder="Enter ImageURL" type="text"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for="ImageURL">Your New Image:</label> 
     <div class="col-sm-10"><img id="showimage" src=""></div> 
    </div> 
</form> 
</body> 
</html> 

PHP:(upload.php)

<?php 
$image_name = basename($_POST["imageurl"]); 
$ch = curl_init($_POST["imageurl"]); 
$fp = fopen("tmp/$image_name", 'wb'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
$url = $_SERVER['REQUEST_URI']; //returns the current URL 
$parts = explode('/', $url); 
$dir = $_SERVER['SERVER_NAME']; 

for ($i = 0; $i < count($parts) - 1; $i++) 
    { 
    $dir.= $parts[$i] . "/"; 
    } 

echo "http://" . $dir . "tmp/" . $image_name; 
?> 
+0

それは素晴らしいです。私はこの部分を行うことができますが、私の大きな問題はこのソリューションをwysihtmlにどのように接続するのかです。 :)そして、ユーザーがテキストエディタから画像を削除した場合、どうなるでしょうか? – hakiko

+0

今あなたは本当に私もあなたのためにそれをしたいですか? :D:P –

+0

私はちょうど私の質問のための解決策を見つける:) – hakiko

関連する問題