So weit so gut.
Ich habe jetzt folgenden Code für den Upload
Delphi-Quellcode:
function TMFORM.HandleIntentAction(const Data: JIntent): Boolean;
var
C: JCursor;
count: Integer;
InputStream : JInputStream;
ms : TMemoryStream;
b: TJavaArray<Byte>;
wfilter: TJavaObjectArray<JString>;
filename : String;
begin
count := Data.getClipData().getItemCount();
ProgressBar1.Min := 0;
ProgressBar1.Max := count;
TTask.Run(
Procedure
var i,m : Integer;
begin
for i := 0 to count-1 do
begin
C := MainActivity.getContentResolver.query(Data.getClipData().getItemAt(i).getUri,nil,StringToJString(''),nil,StringToJString(''));
C.moveToFirst;
for m := 0 to C.getColumnCount - 1 do
begin
if JStringToString(C.getColumnName(m)) = '_display_name' then
begin
filename := JStringToString(C.getString(m));
break;
end;
end;
InputStream := MainActivity.getContentResolver.openInputStream(Data.getClipData().getItemAt(i).getUri);
ms.Free;
b.Free;
b := TJavaArray<Byte>.Create(InputStream.available);
ms := TMemoryStream.Create;
InputStream.read(b);
ms.Write(b.Data^, b.Length);
InputStream.close;
ms.Position := 0;
if not idftp1.Connected then idftp1.Connect;
idftp1.Put(ms,filename);
end;
idFTP1.Disconnect;
end);
end;
Der Upload zeigt ab und zu die Meldung "keine Duplikate zulässig" und der Fortschrittsbalken steht direkt nach beginn des Uploads bei 100%.
Hier hätte ich gerne etwas das die geladenen kBytes pro Datei anzeigt. Geht sowas? Und der Fortschrittsbalken ist sehr dünn, kann man den etwas breiter machen?
In Firemonkey kann ich zwar die Höhe mit der Maus ziehen, wird aber direkt wieder zurück gestellt.
Delphi-Quellcode:
procedure TMFORM.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
TTask.Run(
Procedure
begin
//Aktualisieren der Fortschrittsanzeige:
ProgressBar1.Value:= AWorkCount;
end);
end;
Ich wollte die Bilder vor dem Upload auch noch verkleinern denn ich brauche die Vollauflösung der Kamera nicht und der Upload geht wesentlich schneller.
Gibt überhaupt eine praktikable Lösung auf dem Handy oder kommt man da schnell an die Leistungsgrenze?
LG
Mirko