初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2019-10-07 13:39:58

[解決] データのFTP送信について

いつもお世話になっております。

pleskサーバーへデータの送信ができるように、他のご質問者様へのみなさんの回答などを参考に
試行錯誤してみたところ、ディレクトリの作成まではできるのですが
肝心の画像データが作成されません。

間違いなどがあればご教授いただければ幸いです。

スペック:fmp16 win10

変数を設定[$ホスト名;値:"host.jp"]
変数を設定[$ディレクトリ;値:"/httpdocs/itempic/"]
変数を設定[$ファイル名;値:品番フィールド]
変数を設定[$file;値:オブジェクトフィールド]

変数を設定[$url;値:"ftp://" & $ホスト名 & $ディレクトリ & $ファイル名]
変数を設定[$curl;値:"-u " &  "user:pass" & " --ftp-create-dirs " & " -T $file"]

URLから挿入[選択;ダイアログあり:オフ;オブジェクトフィールド;$url;cURL オプション:$curl;URLを自動的にエンコードしない]


・変数の$urlに$fileを付け足してみましたが『接続できませんでした』のエラーが出ます。

オフライン

#2 2019-10-07 17:20:24

qb_dp
メンバー

Re: [解決] データのFTP送信について

スクリプト的には大丈夫な様に見えますが...

ファイル名でエラーになっているとか?

オフライン

#3 2019-10-07 17:32:15

qb_dp
メンバー

Re: [解決] データのFTP送信について

cURLオプションに

--show-error --dump-header $$responseHeaders

を追加しておけば、$$responseHeaders で戻り値が確認できるので原因が分かるかもしれません。

オフライン

#4 2019-10-07 18:03:58

koeda
メンバー

Re: [解決] データのFTP送信について

西郷どん@初心者 さんの発言:

URLから挿入[選択;ダイアログあり:オフ;オブジェクトフィールド;$url;cURL オプション:$curl;URLを自動的にエンコードしない]

ターゲットに「オブジェクトフィールド」を指定しているようですが、
これはftpサーバーからの結果を受け取るフィールドまたは変数を指定するのでは?
(アップロードできない原因ではないと思いますが)

オフライン

#5 2019-10-07 19:29:34

Re: [解決] データのFTP送信について

qb_dp様
ファイル名に関してはimgから始まる乱数が設定されております。(ユニーク値)

ご教示いただきましたcURLオプションを使用してみましたが、戻り値が取得できず...
何かが根本的に間違っているのかも?(なぜディレクトリは作成されるのかは不明だが...
まだまだ初心者のため、少し時間がかかりそうです;;

koeda様
ご指摘いただいた通りこちらは現在変数に置き換えております。
ですが戻り値は上記のように...

どなたかcurlオプションを使用したFTP送信関連のサンプルファイルがございましたらいただければ幸いです...

オフライン

#6 2019-10-08 08:11:12

koeda
メンバー

Re: [解決] データのFTP送信について

サンプルを作成してみました。
qb_dpさんのアドバイスに従って、$$responseHeadersの値を結果欄に表示するようにしてみました。

https://www.dropbox.com/s/2p3tpfrn9chbc … fmp12?dl=0

編集者 koeda (2019-10-08 08:11:54)

オフライン

#7 2019-10-08 11:34:18

koeda
メンバー

Re: [解決] データのFTP送信について

「URLから挿入」ステップのターゲットについて補足です。

ダウンロードの場合は、サーバから転送されてくるファイルの格納先としてターゲットを指定します。

いっぽう、アップロードの場合、サーバからレスポンスとして転送されてくるファイルは無いので、
ターゲットには何も戻りません。
(だから私のサンプルのようにターゲットを指定しても無意味ですね)

ダウンロード/アップロードともにレスポンスヘッダは返ってきます。
それはcurlオプションで指定した変数に格納されます。

編集者 koeda (2019-10-08 11:35:07)

オフライン

#8 2019-10-08 13:31:41

Re: [解決] データのFTP送信について

koeda様

サンプルデータありがとうございました。
接続はできませんでしたが、サーバー側での指定などがあるのかもしれませんね...(勉強不足の為わかりませんが;;
koeda様・qb_dp様にはたくさんの知識を頂いたのにも関わらず、最終的には完成せず申し訳ないです。
結果的に自分の不足している知識が明確になったので、とりあえずは解決とさせていただきました。
このまま試行錯誤しながら課題がクリアできれば報告にあがります。
ありがとうございました。

オフライン

#9 2019-10-08 17:18:47

Re: [解決] データのFTP送信について

koeda様 qb_dp様

結局プラグインを使ってFTPのアップに関しては実装してみました。
知識不足の為、判断はしかねますがパッシブでのデータ送信の際はプラグインでの送信ができましたので
curlの処理について勉強しなおしてみます。

オフライン

#10 2019-10-09 10:45:12

koeda
メンバー

Re: [解決] データのFTP送信について

作成したサンプルは、私の手元のテスト環境ではもちろんうまく動作しているのですが…

ちなみにFTPによる転送がうまくいっている場合、
229 Entering Extended Passive Mode
というヘッダが返ってきています。
pleskという環境はパッシブモードが使えないとか?

それ以前に、サンプルでは西郷どんさんのお使いの環境では接続すらできませんか?
1)接続すらできない
2)ログインができない
3)データ転送ができない

1)ですと、curl以前の問題かと

オフライン

#11 2019-10-09 15:51:25

Re: [解決] データのFTP送信について

koeda様

curlでのFTP送信ではディレクトリの作成ができており、認証もできておりますが、画像データの送信の際に接続ができないと表示されます。
pleskのサーバーの契約を必須としていた事業者へ問い合わせたところデフォルト状態ではパッシブモードでのデータ転送が不可との返答があり
上で私が考察した『パッシブでのデータ送信は可能だった』は見当違いだったようです。

プラグインではデータが転送できていることからほかにも要因があるのではと探っておりますが、何分無知ですので勉強しながらとなります。
現段階でめぼしをつけているのは『バイナリーモードでのデータ転送』でしょうか?
Filemakerやそのほかの機能を知れば知るほどとても奥が深く、とても楽しいです。

オフライン

#12 2019-10-10 09:15:12

koeda
メンバー

Re: [解決] データのFTP送信について

お使いのサーバでパッシブモードでの転送が不可なのであれば、-Pオプションでアクティブモードでの転送を指定する必要があります。

curlオプションについては、FileMakerの上で試行錯誤するよりも、
まずコマンドプロンプトなどでcurlをいろんなオプションで試してみて、うまくいったらそれをFileMakerに移植する、
というやり方の方が早いですね。

オフライン

#13 2019-10-10 15:47:18

Re: [解決] データのFTP送信について

koeda様

-Pでポート指定ですかね?
一度ご指摘いただいたcmdを使用してチャレンジしてみます!

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer