PDA

Ver la Versión Completa : Se puede guardar mas de un valor en un AddObject con MultiPartFormDataStream


Missael
01-11-2018, 18:07:03
Hola, Buenos dias

Tengo una duda sobre el metodo AddObject de MultiPartFormDataStream, lo que pasa es que deseo enviar unos archivos mediante esa sentencia, pero son dos archivos con distintas extensiones, les anexo mi código para una mejor explicación.

FileStreamP := TIdMultiPartFormDataStream.Create;
FileStreamGI := TIdMultiPartFormDataStream.Create;
try
i := AnsiPos('Product', Filename);
if i <> 0 then
begin
Tipe := 'P';
i := AnsiPos('.txt',Filename);
if i <> 0 then
begin
FileStreamP.AddObject('ImportFileGI', 'text/plain', '/', Archives, FileName);
Response := httpUp.Post('http://localhost:8082/SBEASAP/uploadExcelAndDetailsQC.action?type='+Tipe+'', FileStreamP);
end
else
FileStreamP.AddObject('ImportFile', 'application/vnd.ms-excel', '/', Archives, FileName);
FileStreamP.Position := 0;
end
else
begin
Tipe := 'GI';
i := AnsiPos('.txt',FileName);
if i <> 0 then
begin
FileStreamGI.AddObject('ImportFileGI', 'text/plain', '/', Archives, FileName);
Response := httpUp.Post('http://localhost:8082/SBEASAP/uploadExcelAndDetailsQC.action?type='+Tipe+'', FileStreamGI);
end
else
FileStreamGI.AddObject('ImportFile', 'application/vnd.ms-excel', '/', Archives, FileName);
end;
finally
end;

Como pueden observar, son dos archivos con dos extensiones diferentes, estos los obtengo usando el FindFirst, para ubicarlos en carpetas de mi desktop, pero primero me lee los archivos excel y despues los txt, por lo cual hice que primero leyera los excel para posteriormente leer los txt y subirlos, pero al parecer no guarda ambos archivos, de poderse guardar ambos archivos para utilizar el metodo post, podrian explicarme como hacerlo? o que otro metodo puedo utilizar?

Saludos

Missael
01-11-2018, 20:05:47
Ya lo resolvi, solo estaba poniendo mal esta parte
FileStreamP := TIdMultiPartFormDataStream.Create;
FileStreamGI := TIdMultiPartFormDataStream.Create;

los generaba cada que entraba a la funcion y por eso solo me guardaba el ultimo dato, asi que solo lo puse fuera de la función, si a alguien le ocurre el mismo error que a mi, espero esto le ayude

ElKurgan
05-11-2018, 07:44:39
Gracias por compartir la solución

Saludos