Ik heb een vraagje.
Ben bezig met een scriptje waarmee ik bestanden kan uploaden naar mijn toegekende folder.
Op dit moment worden de bestanden met de bestandsnamen geupload welke ook op mijn computer staan.
Ik heb al wel voor elkaar gekregen dat ik de datum er voor krijg.
Ik zou graag willen dat deze een specifieke vastgestelde bestandsnaam mee krijgen.
Het script zal gaan dienen dat er telkens twee bestanden worden geupload en deze daarna worden doorgestuurd per mail. Ik zou graag willen dat het bestand 1.txt en 2.txt krijgen telkens wanneer het bestand word geupload.
Als je ooit naar 3 uploadfiles gaat, moet je vanalles aanpassen. Ik zeg altijd: of je bouwt voor de situatie van 1 (een uploadveld, 1 telefoonnummer, 1 mailadres)
of voor meerdere (meer dan 1 uploadveld etc.)
en dan op zo'n manier dat het werkt bij 2 velden, maar ook voor 3, 5 of 23. (en uiteraard voor 1 of 0).
Dat kost je eenmalig een minuut of 2 meer werk, maar daarna hoef je nooit meer aan te passen als het er meer dan 2 worden.
En jij snapt waarschijnlijk ook dat zolang je niet met een of ander systeem werkt dit alles nog altijd ad hoc is, en daarmee per definitie niet flexibel.
Hoe makkelijk het toevoegen en afhandelen van een uploadveld is hangt ook heel erg van de opzet af. In deze opzet is dat waarschijnlijk niet zo ontzettend handig, toegegeven, maar... Aan de andere kant is er geen enkele controle of de upload ook geslaagd is dus deze oplossing werkt om te beginnen al met heel minimalistische code die er eigenlijk vanuit gaat dat alles altijd meteen lukt...
Je kunt ook niet claimen dat dit "een minuut of 2 meer werk" is omdat je niet op voorhand weet wat de toekomstige wijzigingen omvatten. Noch kun je claimen dat dit altijd meteen werkt, je kunt namelijk tegen uploadlimieten aanlopen als je een hoop uploadvelden introduceert. Of een timeout tijdens het uploaden. Er kan echt zoveel misgaan.
Uit functioneel oogpunt is het volgens mij niet zo onlogisch dat je een uploadslot voor een "boven" afbeelding hebt, en een uploadslot voor een "onder" afbeelding. Was dit niet het hele probleem waarmee topicstarter worstelde? En dan allemaal code om iets de goede naam te geven, wat als de naam van de afbeelding (expliciet) vastligt door een specifiek uploadveld? Veel eenduidiger wordt het niet? Stop je meteen alles in het goede vakje.
Hallo Hans, met het risico om als een zeur over te komen het volgende.
Er zijn tig manieren om dit soort vraagstukken op te lossen. Een daarvan is code schrijven die precies doet wat er dient te gebeuren, niet meer, niet minder. Dit heeft als nadeel dat als er iets verandert je dit weer (deels) open moet breken om de aanpassingen door te voeren. Voordeel: het is simpel(er). Maar het blijft een baksteen.
Een andere manier is door het probleem op te splitsen in deelproblemen, en deze in wezen te ontkoppelen. Zoals ik al eerder aangaf, je zou dit dus op kunnen delen in een uploadsysteempje, en een heel eenvoudig formuliertje wat je gebruikt om de bestanden die je wilt mailen te selecteren uit een lijst van eerdere geuploade bestanden, en daarbij bijvoorbeeld aan te geven hoe je de attachments wilt noemen (selecteer bestand 1, verstuur als A.txt, selecteer bestand 2, verstuur als B.txt et cetera). Dit heeft als nadeel dat dit een "omslachtigere" oplossing is. In wezen bereik je dan wel met wat omwegen hetzelfde resultaat. Voordeel: het is herbruikbaar en uitbreidbaar.
In beide / alle gevallen moet wat je wilt doen wel "passen", de gemaakte functionaliteit moet voorzien in een bepaalde wens. Maar wat er verder allemaal speelt heb ik geen weet van, of daar is mogelijk nog niet over nagedacht. Ik weet bijvoorbeeld niet hoe vaak jij bestanden uploadt, of je hier een historie bij wilt houden (van oude en nieuwe "onder" en "boven" foto's), of dat je deze bestanden overschrijft, of dat je verschillende versies hebt, of je verschillende mails hebt, of je gepersonificeerde mails hebt, hoe vaak mails verstuurd worden, of je een historie van mails wilt, of je ook het versturen van mails wilt automatiseren indien er nieuwe bestanden zijn et cetera.
Mogelijk wil je iets heel simpels en hoeft het allemaal niet zo uitgebreid, maar ik zou er toch voor waken dat er semi-fatsoenlijke oplossingen worden gemaakt die dingen ook echt *automatiseren*. Zodat je dadelijk niet allerlei scriptjes hebt die van alles en nog wat doen.
Zoals ik het zie is je oorspronkelijke probleem een soort van gebrek aan controle over de bestanden nadat je deze geupload hebt. Ik zou dan nog steeds voor een oplossing gaan waarbij je zelf -na het uploaden- op een of andere manier de regie hebt. Op enig moment moet je gewoon een keuze hebben om iets te versturen onder een andere / specifieke naam. Dit neemt dan je oorspronkelijke probleem weg omdat je zelf op het moment dat de mail verstuurd wordt alles zelf kunt (of is) aan(ge)geven en het maakt dan ook niet meer uit onder welke naam de bestanden oorspronkelijk waren geupload (ontkoppel de problemen). Je zou zelfs aan een mailsysteempje kunnen denken waarbij je templates kiest en hier nog attachments aan kunt hangen al dan niet onder een specifieke naam. Mailinglijsten. Noem het maar op.
Maar van dit alles kan ik geen code geven omdat ik simpelweg niet weet wat je probeert te automatiseren, of hoe. Ook denk ik dat handig is dat iemand meedenkt over hoe je dit op een gestructureerde manier doet. Maar ook dit kan ik niet echt inschatten omdat ik niets weet van de schaal waarop je dit uit wilt rollen, en hoe uitgebreid het allemaal kan worden.
Het is ook de combinatie van dingen: uploaden van bestanden, bestandsbeheer, e-mail met attachments. Dan moet je ook na gaan denken over controle-schillen hier omheen, je wilt namelijk niet dat iedereen zomaar iets kan uploaden en mail kan versturen, ik neem aan dat dat dan ook op een of andere (fatsoenlijke) manier afgeschermd moet worden, in dat opzicht kan ik je ook niet zo makkelijk "een voorbeeld" van maken omdat dit uiteenvalt in verschillende disciplines die elk nogal wat voeten in de aarde hebben... Het geheel is hier ook meer dan de som der delen.
Misschien is het daarom nog het beste dat er iemand met jou aan tafel gaat zitten om dit alles uit te denken en te (laten) maken, omdat ik de indruk heb dat het specificeren en schrijven van code niet gemakkelijk gaat. Mogelijk biedt een CMS of framework uitkomst bij het bouwen van datgene wat je uiteindelijk probeert te bereiken. Een volledige(re) functionele spec (wat probeer je te doen of te bereiken) kan hierbij helpen (en is eigenlijk een eerste stap).