 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jfuentevilla Lt JG

Registrado: 22 Nov 2005Mensajes: 53
|
Publicado: Jue 09 Feb, 2023 9:39 pm Asunto: Cargar archivos a Url |
|
|
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 |
|
 |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Mar 14 Feb, 2023 12:38 am Asunto: |
|
|
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 |
|
 |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Sab 18 Feb, 2023 3:32 pm Asunto: |
|
|
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 |
|
 |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Sab 18 Feb, 2023 3:36 pm Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|