Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cargar archivos a Url

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cargar archivos a Url Responder citando

Necesito crear carpetas y cargar archivos pdf a una direccion de internet
Ejemplo: http://200.148.124.200/Archivos/2023/
Ayuda si alguien a trabajo con esto
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Creo que el siguiente código puede ayudar:

Código:

//---------------------------------------------------------------------------

#include <System>
#include <IdHTTP>
#include <IdMultipartFormData>

void UploadFile(String fileName, String url)
{
    TIdHTTP *http = new TIdHTTP(NULL);
   //TIdMultipartFormData *formData = new TIdMultipartFormData(NULL);
   TIdMultiPartFormDataStream *formData = new TIdMultiPartFormDataStream();

   try {
        formData->AddFile("file", fileName);
      http->Post(url, formData);
   }
    catch (Exception &ex) {
      ShowMessage(ex.Message);
    }

    delete formData;
    delete http;
}

void CreateFolder(String folderName)
{
    if (!DirectoryExists(folderName)) {
        CreateDir(folderName);
    }
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    String folder = "Archivos/2023/";
    String file = "file.pdf";
    String url = "http://200.148.124.200/" + folder;

    CreateFolder(folder);
    UploadFile(file, url);
}
//---------------------------------------------------------------------------
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Para crear una carpeta y enviar un archivo a una dirección de internet, necesitarás utilizar la biblioteca Indy. Aquí hay un ejemplo de código que podría ayudarte:

Código:

#include <vcl>
#pragma hdrstop

#include "Unit1.h"
#include <IdHTTP>
#include <IdSSLOpenSSL>
#include <IdURI>
#include <System>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TIdHTTP *http = new TIdHTTP(NULL);
    TIdSSLIOHandlerSocketOpenSSL *ssl = new TIdSSLIOHandlerSocketOpenSSL(NULL);
    TIdURI *uri = new TIdURI(Edit1->Text);
    try
    {
        http->IOHandler = ssl;
        http->Request->ContentType = "application/pdf";
        http->Request->CustomHeaders->AddValue("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        http->Request->CustomHeaders->AddValue("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0");
        http->Request->CustomHeaders->AddValue("Accept-Language", "en-US,en;q=0.5");
        http->Request->CustomHeaders->AddValue("Accept-Encoding", "gzip, deflate");
        http->Request->CustomHeaders->AddValue("DNT", "1");
        http->Request->CustomHeaders->AddValue("Connection", "keep-alive");
        http->Request->CustomHeaders->AddValue("Upgrade-Insecure-Requests", "1");

        // Crear la carpeta
        String url = Edit1->Text + "2023/";
        uri->URI = url;
        http->Post(uri->URI);

        // Enviar el archivo PDF a la carpeta creada
        url = Edit1->Text + "2023/file.pdf";
        uri->URI = url;
        http->Post(uri->URI, TFileStream::Create("file.pdf", fmOpenRead | fmShareDenyWrite));
    }
    catch (Exception &E)
    {
        ShowMessage(E.Message);
    }
    delete uri;
    delete ssl;
    delete http;
}


Este ejemplo asume que tienes un formulario con un botón y un campo de edición. El campo de edición se utiliza para insertar la dirección web donde deseas crear la carpeta y enviar el archivo PDF.

El código utiliza el objeto TIdHTTP para hacer la solicitud HTTP y el objeto TIdSSLIOHandlerSocketOpenSSL para manejar SSL (si es necesario).

La primera parte del código crea la carpeta "2023" en el servidor, enviando una solicitud POST a la URL http://200.148.124.200/Archivos/2023/.

La segunda parte del código envía el archivo PDF a la carpeta que acabamos de crear, enviando una solicitud POST a la URL http://200.148.124.200/Archivos/2023/file.pdf. El archivo PDF se abre con el TFileStream y se envía como un parámetro para el método Post del TIdHTTP.

Recuerda agregar las bibliotecas necesarias a tu proyecto: IdHTTP, IdSSLOpenSSL e IdURI.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

respuestas generadas por ChatGPT

¿Las respuestas generadas por ChatGPT significan el fin de los foros y la decadencia de Google?

No necesariamente. Las respuestas generadas por ChatGPT son una herramienta útil para ayudar a las personas a obtener información y respuestas a sus preguntas. Sin embargo, los foros y Google siguen siendo fuentes populares de información para muchas personas.

Los foros pueden proporcionar una discusión más detallada sobre un tema y permitir que los usuarios intercambien ideas y experiencias. Google sigue siendo una herramienta importante para buscar información y encontrar recursos en línea.

En última instancia, cada herramienta tiene sus propias fortalezas y debilidades, y su uso dependerá del usuario y de sus necesidades específicas.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.