To upload an image file to a web form

I have image files (.png files) in the document directory (iPhone). I am viewing web forms (.aspx) in a UIWebView. when I click the submit button of the form, I just want to attach the image file to the form and want to send this file to the web server along with the web form.

The thing I'm suffering with is I don't get how to attach an image file to a web form and how to submit these two.

Please help me with this. I don’t understand how to do this.

Thank you....

+3
source share
3 answers

You will need to modify these examples to work for you, but they are working examples.

Objective-c

MyViewController.m:

- (void) upload
{
    NSString *urlString = @"http://www.yourwebsite.com/uploads/upload.php";
    NSData *data = /* turn your png into NSData */

    // setting up the request object now
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

    /* now lets create the body of the post */
    NSString *content = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@.png\"\r\n",@"yourPng"];
    NSMutableData *body = [NSMutableData data];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];    
    [body appendData:[[NSString stringWithString:content] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithString:@"Content-Type: text/plain\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[NSData dataWithData:data]];
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    // setting the body of the post to the reqeust
    [request setHTTPBody:body];

    // now lets make the connection to the web
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];  
}

Php

upload.php:

<?php
//assuming upload.php and upload folder are in the same dir
$uploaddir = 'uploads/';
$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir . $file;
$product = $_GET[product];

if (is_uploaded_file($_FILES['userfile']['tmp_name']))
{
    echo "PNG uploaded. \r\n";
} else {
    echo "PNG not uploaded. \r\n";
}

if ($_FILES['userfile']['size']> 300000)     //Limiting image at 300K
{
    exit("Your file is too large."); 
}

// Add support here for PNG files:
if ((!($_FILES['userfile']['type'] == "text/plain")) &&  //Also allowing 
    (!($_FILES['userfile']['type'] == "text/plist")) &&  //plist files
    (!($_FILES['userfile']['type'] == "text/html")))     //HTML files
{
    exit("Incorrect file type.  " . $_FILES['userfile']['type'] . " is the file type you uploaded."); 
}

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    $postsize = ini_get('post_max_size');    //Not necessary, I was using these
    $canupload = ini_get('file_uploads');    //server variables to see what was 
    $tempdir = ini_get('upload_tmp_dir');    //going wrong.
    $maxsize = ini_get('upload_max_filesize');
    echo "http://www.yourwebsite.com/uploads/{$file}" . "\r\n" . $_FILES['userfile']['size'] . "\r\n" . $_FILES['userfile']['type'] ;
}
?>
+6
source

iphone. , iPhone.

<input type="FILE"/> .

+2

! - - , !

<?php
$uploaddir = './';      //Uploading to same directory as PHP file  ./
$file = basename($_FILES['userfile']['name']);
$uploadFile = $file;
$randomNumber = rand(0, 99999); 
$newName = $uploadDir . $randomNumber . $uploadFile;

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {

} else {
    echo "Temp file not uploaded. \r\n";
}

if ($_FILES['userfile']['size']> 3000000000000000) {
exit("Your file is too large."); 
}

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newName)) {
$postsize = ini_get('post_max_size');   //Not necessary, I was using these
$canupload = ini_get('file_uploads');    //server variables to see what was 
$tempdir = ini_get('upload_tmp_dir');   //going wrong.
$maxsize = ini_get('upload_max_filesize');
echo "http://localhost:8888/wouldYa/images/{$randomNumber}{$file}" . "\r\n";
}
?>

, Str Xcode, PHP, , , :-)

, , , , .

+1

Source: https://habr.com/ru/post/1795406/


All Articles