0

私はiPhone開発に不慣れなので、画像をサーバーにアップロードする際の行について誰か説明できますか?

NSString *urlString = @"http://www.mysite.com/edit_profile.php";

ラインはどういう意味ですか?

新しいプロジェクトで同じコードを書いている場合、そこに何を書く必要がありますか?

画像が追加されたかどうかを確認する方法は?

ユーチューブの動画を見てきました

http://www.youtube.com/watch?v=aQXaJO36I7Y

そこには upload.php があり、その .php ファイルは彼女のシステムにありました。
アプリケーションに同じコードを書いた場合、どうすればよいですか?

4

3 に答える 3

0

コード内の文字列は URL です。(詳細については、この wiki を参照してください: Uniform Resource Locator )。

ファイルをサーバーにアップロードするときは、 RFC 1867の「HTML でのフォームベースのファイル アップロード」で説明されているように、HTTP POST 要求を使用できます (強制ではありません) 。

iOSNSURLConnectionでは、これを実現するために を使用するか、サード パーティのフレームワークを使用できます。

SO には、ファイルをサーバーにアップロードする方法に関する豊富な情報が含まれています。

于 2013-07-29T07:12:22.560 に答える
0

以下のコードを理解して、サーバーにデータ (ここでは画像ポスト データ) を送信するための単純な http ポスト メソッドを理解してください...

- (id)initWithURL:(NSString *)url requestDataForImage:(NSData *)dataForImage imagename:(NSString*)imagename 

{

 if (self = [super init])
    {
        initrequeststring=@"Sourceimagetype";
         NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
        url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        request = [[NSMutableURLRequest alloc] init];
        [request setURL:[NSURL URLWithString:url]];
        [request setHTTPMethod:@"POST"];
        NSString *boundary = @"---------------------------14737809831466499882746641449";
        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
        [request addValue:contentType forHTTPHeaderField:@"Content-Type"];

    NSMutableData *body1 = [NSMutableData data];
    [body1 appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    //int r = arc4random() % 480000;
    NSString *str = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"SourceImage\"; filename=\"%@\"\r\n", imagename];
    [body1 appendData:[[NSString stringWithString:str] dataUsingEncoding:NSUTF8StringEncoding]];
    [body1 appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding : NSUTF8StringEncoding]];
    [body1 appendData:[NSData dataWithData:dataForImage]];
    [body1 appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:body1];


    con=[[NSURLConnection alloc]initWithRequest:request delegate:self];
    if(con)
    {
        webdata=[[NSMutableData data]retain];
    }
}

return self;

}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    [webdata setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [webdata appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    [app hideLoadingView];

    if ([WSDelegate respondsToSelector:@selector(ConnectionFail:)])
    {
        [WSDelegate ConnectionFail:[NSString stringWithFormat:@"%@",error.localizedDescription]];
    }
    else
    {
        connection=nil;
        [connection release];
    }
}

サーバー上のphpファイルで、ファイルを目的のフォルダーに移動できます..

if ($_GET['user_id']!='')
{
    $uploaddir = $_SERVER['DOCUMENT_ROOT'].'/streetculture/Images/'.$user_id.'/';
    move_uploaded_file($_FILES['SourceImage']['tmp_name'],$uploaddir.$_FILES['SourceImage']['name']);
    $da_created = date('Y-m-d H:i:s');
    @$Carpic = $_FILES['SourceImage']['name'];
    $thumbname='th_'.$Carpic;
    $uploadfile = $uploaddir . $Carpic;
    $tx_image = $Carpic;
    list($width, $height) = getimagesize($uploadfile) ;
    $ratio=2;
    $modwidth = $width / $ratio; 
    $modheight = $height / $ratio;
    $modwidth=round($modwidth, 0, PHP_ROUND_HALF_EVEN);
    $modheight=round($modheight, 0, PHP_ROUND_HALF_EVEN);
    $tn = imagecreatetruecolor($modwidth, $modheight) ; 
    $image = imagecreatefromjpeg($uploadfile) ; 
    imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height) ;
    imagejpeg($tn,$uploaddir . $thumbname, 100) ;
}
于 2013-07-29T09:56:19.093 に答える