みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
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を付け足してみましたが『接続できませんでした』のエラーが出ます。
Offline
スクリプト的には大丈夫な様に見えますが...
ファイル名でエラーになっているとか?
Offline
cURLオプションに
--show-error --dump-header $$responseHeaders
を追加しておけば、$$responseHeaders で戻り値が確認できるので原因が分かるかもしれません。
Offline
URLから挿入[選択;ダイアログあり:オフ;オブジェクトフィールド;$url;cURL オプション:$curl;URLを自動的にエンコードしない]
ターゲットに「オブジェクトフィールド」を指定しているようですが、
これはftpサーバーからの結果を受け取るフィールドまたは変数を指定するのでは?
(アップロードできない原因ではないと思いますが)
Offline
qb_dp様
ファイル名に関してはimgから始まる乱数が設定されております。(ユニーク値)
ご教示いただきましたcURLオプションを使用してみましたが、戻り値が取得できず...
何かが根本的に間違っているのかも?(なぜディレクトリは作成されるのかは不明だが...
まだまだ初心者のため、少し時間がかかりそうです;;
koeda様
ご指摘いただいた通りこちらは現在変数に置き換えております。
ですが戻り値は上記のように...
どなたかcurlオプションを使用したFTP送信関連のサンプルファイルがございましたらいただければ幸いです...
Offline
サンプルを作成してみました。
qb_dpさんのアドバイスに従って、$$responseHeadersの値を結果欄に表示するようにしてみました。
https://www.dropbox.com/s/2p3tpfrn9chbc … fmp12?dl=0
Last edited by koeda (2019-10-08 08:11:54)
Offline
「URLから挿入」ステップのターゲットについて補足です。
ダウンロードの場合は、サーバから転送されてくるファイルの格納先としてターゲットを指定します。
いっぽう、アップロードの場合、サーバからレスポンスとして転送されてくるファイルは無いので、
ターゲットには何も戻りません。
(だから私のサンプルのようにターゲットを指定しても無意味ですね)
ダウンロード/アップロードともにレスポンスヘッダは返ってきます。
それはcurlオプションで指定した変数に格納されます。
Last edited by koeda (2019-10-08 11:35:07)
Offline
koeda様
サンプルデータありがとうございました。
接続はできませんでしたが、サーバー側での指定などがあるのかもしれませんね...(勉強不足の為わかりませんが;;
koeda様・qb_dp様にはたくさんの知識を頂いたのにも関わらず、最終的には完成せず申し訳ないです。
結果的に自分の不足している知識が明確になったので、とりあえずは解決とさせていただきました。
このまま試行錯誤しながら課題がクリアできれば報告にあがります。
ありがとうございました。
Offline
koeda様 qb_dp様
結局プラグインを使ってFTPのアップに関しては実装してみました。
知識不足の為、判断はしかねますがパッシブでのデータ送信の際はプラグインでの送信ができましたので
curlの処理について勉強しなおしてみます。
Offline
作成したサンプルは、私の手元のテスト環境ではもちろんうまく動作しているのですが…
ちなみにFTPによる転送がうまくいっている場合、
229 Entering Extended Passive Mode
というヘッダが返ってきています。
pleskという環境はパッシブモードが使えないとか?
それ以前に、サンプルでは西郷どんさんのお使いの環境では接続すらできませんか?
1)接続すらできない
2)ログインができない
3)データ転送ができない
1)ですと、curl以前の問題かと
Offline
koeda様
curlでのFTP送信ではディレクトリの作成ができており、認証もできておりますが、画像データの送信の際に接続ができないと表示されます。
pleskのサーバーの契約を必須としていた事業者へ問い合わせたところデフォルト状態ではパッシブモードでのデータ転送が不可との返答があり
上で私が考察した『パッシブでのデータ送信は可能だった』は見当違いだったようです。
プラグインではデータが転送できていることからほかにも要因があるのではと探っておりますが、何分無知ですので勉強しながらとなります。
現段階でめぼしをつけているのは『バイナリーモードでのデータ転送』でしょうか?
Filemakerやそのほかの機能を知れば知るほどとても奥が深く、とても楽しいです。
Offline
お使いのサーバでパッシブモードでの転送が不可なのであれば、-Pオプションでアクティブモードでの転送を指定する必要があります。
curlオプションについては、FileMakerの上で試行錯誤するよりも、
まずコマンドプロンプトなどでcurlをいろんなオプションで試してみて、うまくいったらそれをFileMakerに移植する、
というやり方の方が早いですね。
Offline
koeda様
-Pでポート指定ですかね?
一度ご指摘いただいたcmdを使用してチャレンジしてみます!
Offline
Pages: 1
[ Generated in 0.011 seconds, 9 queries executed - Memory usage: 548.1 KiB (Peak: 569.01 KiB) ]