例:
F:/images/home/pic.jpg
は、絶対パスです。通知 バックスラッシュ\
を円スラッシュ/
に変更しました。
http://www.example.com/images/pic.png
は絶対パスです。
./pic.jpg
は(..
あなたは画像フォルダがあまりにも配置されている作業ディレクトリを入力、現在のフォルダを終了しました意味)の相対パスであるとpic.jpg
../images/pic.jpg
相対パスをイアに相当します。リモート(Linux)のサーバーで
、あなたは
のは、リモートサーバーは、Linux/Apacheサーバであると仮定しましょう相対パスを知っている必要があります。おそらくjavascript/angular
の代わりにapache
という質問を付ける必要がありますか?
あなたのイメージへの相対パスを決定し、このような何かにあなたのコードを書き換えるために、上記の例を使用する必要があります。
$imgData = base64_encode(file_get_contents('../images/home/pic.jpg'));
あなたはまた、絶対パス(http://www.example.com/images/pic.png)を使用することができますが、それはないです常に可能または推奨されます。
画像への相対パスを見つけるにはどうすればよいですか? PHP、SSH、またはFTPを使用して、これを行うには複数の方法があります。 あなたのFTPソフトウェアはあなたがそれに移動した場合にあなたの画像へのパスを表示しますが、それをあなたの作業ディレクトリのパスに適合させる必要があります。、あなたはFilezillaの中で見/home/bg29ll/public_html/food2/images
で、
この場合、
food2
は、作業ディレクトリなので、あなただけ使用する必要があります:この画像はFilezillaの、オープンソースのFTPクライアントからです
$imgData = base64_encode(file_get_contents('images/pic.jpg'));
また、あなたのPHPコードでは、この行を含めて、サーバー上で実行することがあります
print_r(dirname(__FILE__));
これにより、絶対パスが何であるかを知ることができます。
EDIT:イメージをデータベースに保存して、データベースに保存することをお勧めしますが、blob
列タイプ(バリエーションの1つ、 TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
)。 Mediumblobは、最大16 MBのファイルサイズを許可します。
CREATE TABLE images (
id INT AUTO_INCREMENT PRIMARY KEY,
mime VARCHAR (255) NOT NULL,
data MEDIUMBLOB NOT NULL
);
あなたはその後、(PDOを使用して)DBに画像を挿入するには、このようなものを使用します。私は:)を助けることができた嬉しい
$blob = fopen($filePath, 'rb');
$sql = "INSERT INTO files(mime,data) VALUES(:mime,:data)";
$stmt = $this->pdo->prepare($sql);
$stmt->bindParam(':mime', $mime);
$stmt->bindParam(':data', $blob, PDO::PARAM_LOB);
$stmt->execute();
ITが働いている... – athi
@athi、あなたは私の答えをupvoteし、受け入れられたとしてそれをマークできますか? – bg17aw
イメージが実際にリモートサーバーに存在する場合は、動作しています。 Bt私のアイデアは、ローカルサーバーからリモートサーバーにイメージをアップロードするようなものです。私のイメージのbase64encodeデータを取得し、データベースに保存します。(イメージをサーバーにアップロードする代わりに..) – athi