ページ 1 / 1
[Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月20日(金) 11:26
by matunon
現在、FTPサーバに保存してあるCSVファイルをiPhoneのドキュメントフォルダにダウンロードし、それをFMDBを用いてデータベースにインポートする一連の流れを実現したいと考えています。
CSVをデータベースにインポートするところまでは実現できたのですが、肝心のダウンロードがうまくいきません。
なので調べてみた結果、「webからのCSVのダウンロードは出来ない」と出ました。
この結果だけならば諦められたのですが、ほかにも調べてみるとFTPクライアントでCSVをダウンロードできるとうたっているアプリが多数とは言いませんが存在しました。
Apple公式のURLLoadingSystem,CFNetWorkingについてのPDFをみた上で質問させていただきます。
FTPサーバからCSVをiPhoneのローカルフォルダにダウンロードする一連の流れを実現させるためには何を学べば良いのでしょうか?
PDFに記載されていたサンプルの書き換え、githubのFTPHelper等の便利ライブラリでも駄目でした。
よろしくお願いいたします。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月20日(金) 12:04
by h2so5
CSVをダウンロードできるとうたっているアプリでは問題のCSVはダウンロードできるのですか。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月20日(金) 13:16
by matunon
h2so5 さんが書きました:CSVをダウンロードできるとうたっているアプリでは問題のCSVはダウンロードできるのですか。
有料のソフトなのでわかりませんが、説明文にCSVファイルのダウンロードができると書いてあるものはありました。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月20日(金) 13:21
by matunon
もし、本当に無理だとしたらWeb上から電話帳などのデータをダウンロードする時は、iPhoneではどのようにするのが一般的なのでしょうか?
補足ですいませんがよろしくお願いします。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月20日(金) 15:29
by h2so5
そのCSVはパソコン用のFTPクライアントからはダウンロードできるのですか。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月22日(日) 20:25
by matunon
h2so5 さんが書きました:そのCSVはパソコン用のFTPクライアントからはダウンロードできるのですか。
返信ありがとうございます。
会社にあったFTTTPを用いた所、成功しました。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月22日(日) 20:46
by h2so5
ではiPhoneからCSV以外のファイルはダウンロードできるのですか。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 12:43
by matunon
h2so5 さんが書きました:ではiPhoneからCSV以外のファイルはダウンロードできるのですか。
mpg,png,jpg,mp3,txt,xmlまで試しました。
現在のコードです。
.h
► スポイラーを表示
コード:
#import <Foundation/Foundation.h>
@interface FTPHelper : NSObject<NSURLConnectionDelegate, NSURLConnectionDataDelegate>
- (void) DataDownload;
@end
.m
► スポイラーを表示
コード:
#import "FTPHelper.h"
@interface FTPHelper()
// ダウンロードデータを保存するインスタンス
@property (nonatomic) NSMutableData *downloadData;
@end
@implementation FTPHelper
// データダウンロードを開始するアクションメソッド
- (void)DataDownload {
NSLog(@"DataDownLoad");
NSURLRequest *request = [[NSURLRequest alloc] initWithURL: [NSURL URLWithString: @"ftp://username:password@ftpserver/naisen.csv"] cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval: 60.0];
self.downloadData = [NSMutableData dataWithCapacity: 0]; // downloadDataの初期化
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest: request delegate: self]; // サーバに接続。デレゲートの指定もしている。
if (!connection) {
self.downloadData = nil;
NSLog(@"URL Request was failed.");
}
}
// 以下デレゲートメソッド
// サーバから反応があったら
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)respons
{
NSLog(@"1");
[self.downloadData setLength: 0];
}
// パケットが届くたび、downloadDataにデータを追加していく。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSLog(@"2");
[self.downloadData appendData: data];
}
// ダウンロード失敗のときの処理
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"3");
connection = nil;
self.downloadData = nil;
NSLog(@"Download was failed");
}
// ダウンロード終了の信号が届いたら
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"4");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex: 0];
NSString *dataPath = [path stringByAppendingPathComponent: @"naisen.csv"];
// ローカルディスクに、保存ディレクトリを作成する、定番のコード。
[self.downloadData writeToFile: dataPath atomically: YES];
// ダウンロードデータをファイル保存
NSLog(@"1 directory = %@", dataPath);
// どこに保存したか、教えてもらうために、コンソールにパスを出力しています。
self.downloadData = nil;
connection = nil;
}
@end
となっています。
- (void)DataDownload
は呼び出せるのですが、
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)respons
が呼び出されません・・・・・
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 13:44
by h2so5
matunon さんが書きました:
mpg,png,jpg,mp3,txt,xmlまで試しました。
試して、ダウンロードできたのですか?
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 14:21
by matunon
h2so5 さんが書きました:matunon さんが書きました:
mpg,png,jpg,mp3,txt,xmlまで試しました。
試して、ダウンロードできたのですか?
出来ました。
CSVのみダウンロードできません。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 14:45
by matunon
h2so5 さんが書きました:matunon さんが書きました:
mpg,png,jpg,mp3,txt,xmlまで試しました。
試して、ダウンロードできたのですか?
出来ました。
CSVのみダウンロードできません。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 15:08
by h2so5
では、サーバー上のCSVの拡張子をtxtに変更してダウンロードしてみてください。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 15:21
by h2so5
その次に、ダウンロードできたというtxtの拡張子をcsvに変えてダウンロードしてみてください。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 15:58
by matunon
h2so5 さんが書きました:その次に、ダウンロードできたというtxtの拡張子をcsvに変えてダウンロードしてみてください。
CSVにしたら駄目になります。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 16:38
by matunon
ちなみに、このサーバに対して、FFFTPのみ501 Server cannot accept argument
というエラーメッセージがでます。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 16:58
by h2so5
二箇所で同時に質問しないでください。こちらには回答しません。
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 17:24
by matunon
h2so5 さんが書きました:二箇所で同時に質問しないでください。こちらには回答しません。
?以前の質問は解決にチェックをいれたつもりだったのですが・・・・・。
このサイト外という事でしょうか?
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月23日(月) 17:34
by h2so5
Re: [Objective-C] FTPからのCSVのダウンロードについて
Posted: 2014年6月24日(火) 08:47
by matunon
すいません、規約の事だったのですね。
読みこぼしてました。
解決にして落とします。