a simple http uploader

/*
url = http://somesite.com
file = local file path
file2 = filename for upload
submit_name = the name of the submit html field on the page
submit_value = the value for the submit field
file_form_name = the file name field on the html page
mime_type = the http file type of the upload
folder_path = the path including file of the page to upload to ie: /pictures/user/index.php
*/
int UpLoad( const char *url, const char *file, const char *file2, const char *submit_name, const char *submit_value, 
const char *file_form_name, const char *mime_type, const char *folder_path )
{
    WSADATA wsaData;
    WSAStartup( MAKEWORD( 2,2 ), &wsaData );
    SOCKET sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

    if( sock == INVALID_SOCKET )
    {
        return 0;
    }

    int value = 5000;
    if( setsockopt( sock, SOL_SOCKET, SO_SNDTIMEO, (char *)&value, sizeof( int ) ) == SOCKET_ERROR )
    {
        closesocket( sock );
        return 0;
    }
    
    LPHOSTENT hostEntry;
    hostEntry = gethostbyname( url );

    if( hostEntry == NULL )
    {
        closesocket( sock );
        return 0;
    }
    sockaddr_in addr2;
    
    addr2.sin_family = AF_INET;
    addr2.sin_addr = *((LPIN_ADDR)*hostEntry->h_addr_list);
    addr2.sin_port = htons( 80 );
    
    if( connect( sock, (LPSOCKADDR) &addr2, sizeof(struct sockaddr) ) == SOCKET_ERROR )
    {
        closesocket( sock );
        return 0;
    }

    HANDLE f = CreateFile( file2, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );

    if( !f )
    {
        closesocket( sock );
        return 0;
    }

    char end[512] = "";
    
    wsprintf( end, "\r\n-----------------------------3164130335698\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n-----------------------------3164130335698\r\n\r\n", submit_name, submit_value );

    DWORD hi;
    DWORD size = GetFileSize( f, &hi );

    char *filepart = (char *) GlobalAlloc( GPTR, size + 2048 );

    wsprintf( filepart, "-----------------------------3164130335698\r\nContent-Disposition: form-data; name=\"%s\"; filename=\"%s\"\r\nContent-Type: %s\r\n\r\n", file_form_name, file, mime_type );

    DWORD len = strlen( filepart );

    ReadFile( f, (LPVOID)((DWORD)filepart + len), size, &hi, NULL );

    CloseHandle( f );

    char *request = (char *) GlobalAlloc( GPTR, 1024 + len + size + 1 );

    wsprintf( request, 
    "POST /%s HTTP/1.1\r\nHost: %s\r\nUser-Agent: ELUpload/1.0\r\nConnection: Keep-alive\r\nContent-Type: multipart/form-data; boundary=---------------------------3164130335698\r\nContent-length: %d\r\n---------------------------3164130335698\r\nContent-Disposition: form-data; name=\"MAX_FILE_SIZE\"\r\n\r\n100000\r\n", 
    folder_path, url, len + size + 1 + strlen( end ) );
    
    DWORD head = strlen( request );

    memcpy( request + head, filepart, len + size + 1 );
    head += len + size + 1;
    memcpy( request + head, end, strlen( end ) );
    head += strlen( end );
    
    for( int i = 0; i < head; i++ )
    {
        if( send( sock, (request + i), 1, 0 ) == SOCKET_ERROR )
        {
            closesocket( sock );
            GlobalFree( request );
            GlobalFree( filepart );
            return 0;
        }
    }

    closesocket( sock );

    GlobalFree( request );
    GlobalFree( filepart );
    
    return 1;
}
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="text" name="serial"><br>
<input type="submit" name="submit" value="Upload File" />
</form>

giữa đêm không tìm đến giấc ngủ

Đã nhiều lúc tôi vốn nghĩ cuộc đời này bất công, cùng với điều đó tôi mang theo những hận thù , căm ghét trút lên những gì tối thấy hoặc không may mắn lọt vào suy nghĩ của tôi. Chao ôi tôi đã sai nhiều lần không đếm nỗi và lần này cũng vậy. vừa mở mắt thì nghe tin máy bay rơi. vừa ngồi xuống nghỉ ngơi thì hay tin xe gặp tai nạn, biết bao đau thương , mất mát đến với nhiều người mà chỉ một phút thoáng qua tôi không dừng được cảm xúc của mình có những lúc muốn bật khóc như nếm được mùi đau đớn. Tôi của hiện tại dám tự nhận mình nếm trái đắng sao? đau khổ kia tôi nếm phải có là gì so với những người hôm nay tôi thấy, ngày hôm qua tôi được nghe kể lại? Tôi thật còn may mắn lắm thế tại sao lại tự mang đến phiền muồn và tuôn hận thù. Tôi thật có lỗi.

 

Thanks for all

Một cái tên có thể đổi, một đường link cũng có thể thay đổi… đúng không… có thể biến mất như nó chưa từng tồn tại. Một ngày đã qua, là một ngày như thế nào  rùi  nhỉ . E vốn chẳng tin vào ngôn tình mà nếu nó có thật thì e cũng sẽ chẳng phải là người may mắn ấy đâu đúng không. Có lẽ đây là lần cuối rồi. Thật sự muốn nghe 1 lời chúc từ a, một lời chúc như những lúc a vẫn hát vui nhưng chắc là không được rồi.Thêm một tuổi ùi chắc e sẽ cố không trẻ con nữa, không bị bắt nạt nữa . E không biết hiện giờ mình đang nghĩ gì nữa E nhớ e từng hỏi nếu như 1 ngày e biến mất thì a có sao không. Dĩ nhiên là không sao rồi, điều đó e cũng tự hiểu mà.  Dù sao e cũng cảm ơn a thời gian qua đã chấp nhận cho 1 đứa dở hơi như e làm phiền đủ kiểu. Có lẽ với a chỉ vui thôi nhưng với e điều đó thật tốt biết bao. Chắc a cũng chẳng quan tâm tại sao hay chuyện gì đâu. Mà thật ra cũng chẳng có chuyện gì cả . Sau này chúc a luôn vui vẻ, hanh phúc sẽ luôn đến với a. Cảm ơn anh vì tất cả .

Best things will come to you

Ambiguous Feelings

I don’t know how to talk about today. I feel it’s not a good day for me. Now i’m sad for somethings … is gone. I wanna write a lot but i just see screen and now i can’t know what did i think … Turtle may be you can read this note in anytime but not today. But don’t ask me why or what happened. I just wanna thought that when talked with you something would become not too sad. Thanks a lot about your listening 🙂

GOOD NIGHT TURTLE

A Day

I can’t remember exactly that how long i don’t write in here. May be few days :). Today, turtle didn’t talk with me. The reason:  he want to know that did pig miss him ? And then the result was … :)). Suddenly, i remember that: … TURTLE SAID WE WOULD WRITE TOGETHER BUT … :(. Bad turtle 😦

GOOD NIGHT TURTLE

How about today ?

I just thought to write about today, but now you’re a damned turtle… This morning, few surprise when Turtle called me :), i just wake up few minutes before. Luckily :). Actually, I always see turtle do something which i can’t get it. I don’t know what’s he working for ? games, lottery ticket or driver ??? Not important. I don’t care about it. But… I also pry that Will he talk to me on someday ?

GOOD NIGHT AND SEE YOU TOMORROW MY TURTLE

How should I write now ?

Actualy now i don’t know what i should write in here. The main reason is  obnoxious turtle. He force me to write by english while i even don’t know how to write correctly, sometimes i think may be i just write or translate word by word hix… like at this time. Bad turtle. If you let me write by Vietnamese maybe you can’t have enough patience to read all :))

GOOD NIGHT TURTLE