[PHP] 2de harddisk aan mijn website koppelen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

Ik vroeg mij af hoe ik een 2de harddisk in mijn website kan voegen via PHP.
Ik heb een wbesite die nu al 12000 fantasie afbeeldingen heeft en de harddisk wwar dit allemaal op staat begint langzaam vol te raken.
Ik heb nu via een alias in mijn omnihttpd(nee ik gebruik geen apache wil ik ook niet) webserver gemaakt maar dat gaat niet helemaal honderd.
Ik doe dus alles met PHP natuurlijk maar zodra ik nu een file aanroep op sommige manieren dan krijg ik een fout melding.
vb:
<?php
$image1= "../rootdir/1.jpg";
$image2= "../2deharddiskrootdir/1.jpg";
$size = getimagesize($image1);
$size = getimagesize($image2);
?>
Ik krijg gewoon resultaat met image1 maar met de 2de krijg ik dit:
Warning: getimagesize(../2deharddiskrootdir/image2.jpg): failed to open stream: No such file or directory in search.php on line XX

Misschien moet ik wel iets in PHP.ini doen maar op het moment ben ik teneinde raad. Ik hoop dat het iets heel simpels is.

[ Voor 3% gewijzigd door Verwijderd op 31-07-2003 20:11 ]


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Wat voor OS werk je mee?
Wellicht kun je 1 filesysteem van beide schijven maken.

weet je overigens 100% zeker dat je padverwijzing wel goed is (case-sensitive!)?

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 24-08 19:45
Linux, tuurlijk kun je dat. Padjes goed zetten en dan maar draaien. Je kunt ook je ding mounten in die directory die de rechten bezit (vb.: je hebt /httpserver/php/images/ en die heeft de juiste rechten, dan kun je een directory aanmaken daarin en dan die hd mounten aan die directory of een link-mount.) als je symlinks mag volgen zet je daar een symlink in eh.

Pandora FMS - Open Source Monitoring - pandorafms.org


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn OS is winXPPro, en alles is altijd kleine letters in de paden.

Ik maak hieruit op dat het niet zo makkelijk is?

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 11:40
je kan gewoon met volledige paden werken, in je php code, en die dan includen. Is geen probleem :)

|>


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

dit lijkt mij niet correct voor een windows bak:
PHP:
1
$image2= "../2deharddiskrootdir/1.jpg"


moet het niet zoiets zijn als
PHP:
1
$image2= "d:/2deharddiskrootdir/1.jpg"


Verder ben je redelijk onduidelijk in je vraag stelling. Als je gewoon een hdd in windows hebt hangen moet je die zonder problemen kunnnen benaderen (ook vanuit PHP). Wil je wellicht ook even de 'echte' paden posten die nu in je PHP file staan? Dit is alleen maar op te lossen door heel veel te gokken.

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na veel prutsen en testen heb ik een workarround kunnen maken.

Een ieder heel erg bedankt voor jullie hulp.

[ Voor 89% gewijzigd door Verwijderd op 31-07-2003 22:22 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Verwijderd schreef op 31 juli 2003 @ 21:42:
Na veel prutsen en testen heb ik een workarround kunnen maken.

Een ieder heel erg bedankt voor jullie hulp.
• Als je nou de volgende keer het probleem duidelijk omschrijft kunnen we je beter helpen

• Als je je workaround even post heeft dit topic wellicht enig nut gehad voor het de eeuwige vergetelheid ingaat...

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Klopt, want ik zit hier met hetzelfde probleem. Hoe heb je 't precies op weten te lossen?

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
spider> je verwart windows met *n?x. De slashes duiden duidelijk op een unix-variant.

TS> Je hebt ../2ehdroot/bladiabla

volgens mij, moet je niet .. gebruiken daar, lijkt me redelijk "deze dir, en dan die en die subdir". Als je niet het pad direct aan kunt spreken (bijv "/2ehdroot/plaatjhes/plaatje.gif"), probeer dan eens een symlink ofzo te maken.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

je kan met ntfs toch een dir aan een hd linken ofzo?
daarmee moet het lekker simpel gaan :)

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zal morgen meer uitleg geven met nog een keer de duidelijke probleem omschrijving.
Ik heb nu eindelijk alles klaar en het is bedtijd. :z

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

als je nou gewoon een je 2e harddisk rechtstreeks naar je images dir mount dan ben je toch klaar :?

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Grijze Vos schreef op 01 August 2003 @ 01:27:
spider> je verwart windows met *n?x. De slashes duiden duidelijk op een unix-variant.
[...]
Verwijderd schreef op 31 July 2003 @ 20:52:
Mijn OS is winXPPro, en alles is altijd kleine letters in de paden.
[...]
Helaas :) Lezen jongens :P
offtopic:
Overigens is het Spider.007 vosje :P

[ Voor 20% gewijzigd door Spider.007 op 01-08-2003 10:48 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo bij deze kom ik mijn belofte na over hoe ik het opgelost heb om een 2de harddisk aan mijn website te koppelen.

Allereerst mijn probleem en hoe het in mekaar steekt.

Ik heb dus een default harddisk met daarop mijn website:
harddisk root = j:\homeserver\nomo
url = http://nomo.homeip.net
Hier word dus de Index.php opgehaalt en begint de ellende. ;)

In HD root staan mijn afbeeldingen = j:\homeserver\nomo\images\image1.jpg
Via php bewerking,de url voor de plaatjes = http://nomo.homeip.net/images/image1.jpg

Dit is allemaal makkelijk te doen zolang je maar op de default HD blijft kan je overal komen.

Nu koppel ik een 2de HD aan de website:
harddisk2 root = G:\homeserver2
Via een harde alias setting in mijn webserver(omnihttpd) is mijn url om daar te komen:
url = http://nomo.homeip.net/hd2

afbeeldingen op HD2:
G:\homeserver2\images\image2.jpg
http://nomo.homeip.net/hd2/images/image2.jpg

Nu blijkt dus dat je alleen hele simpele aanroepen kan doen via de alias root op url basis:

Wat wel kan :
HD1 : index.php
HD1 : $image1 = images/image1.jpg;
HD1 : $size=getimagesize($image1);

En let op!!:
HD1 : /hd2/index_2.php

Wat niet kan :
HD1 : $image2 = /hd2/images/image2.jpg;
HD1 : $size=getimagesize($image2);
of:
HD1 : $fsize = round(filesize($image2)/1024);

Het gekke is als ik hier dus gewoon in de addressbar dit in type :
http://nomo.homeip.net/hd2/images/image2.jpg
Krijg ik gewoon resultaat.

Zo zijn er nog meer van dat soort anomalies.

Affijn ik had dus in het totaal 3 problemen welke ik dus op geheel eigen wijze heb opgelost:

1:
De php files die de image bewerkingen doen heb ik dus gewoon gelijkwaardig overgekopieerd naar HD2 !*EN*! met de exacte root als op de default HD.
EN HEEL BELANGRIJK de core php rename ik naar index_2.php.
euhuuu????
HD1 root: HD2 root:
/index.php /hd2/index_2.php
/phpdocs/getimage.php /hd2/phpdocs/getimage.php
/images/image1.jpg /hd2/images/image2.jpg

Nu zet ik een link in index.php naar index_2.php, dit word wel geaccepteerd.
Als ik nu dus verder ga met met index_2.php dan lijkt het voor php alsof ik nog steeds op de standaard root zit en alle bewerkingen worden gewoon uitgevoerd op de ALIAS root.

2:
Soms kan je er niet omheen dat je een aanroep moet doen van de default root naar de alias root:
HD1 : $image2 = /hd2/images/image2.jpg;
HD1 : $size=getimagesize($image2);
Hier komt een foutmelding.

Dit heb ik als volgt opgelost:
Met volledige url/roots.
Dus voor "getimagesize($image2)" maak ik :
HD1 : $image2="http://nomo.homeip.net/hd2/images/image2.jpg";
HD1 : $size=getimagesize($image2);
Nu krijg ik wel resultaat.

3:
Zo geld dit ook voor filesize($image2);
Deze werkt iets anders, dus :
HD1 : image2 = "g:\homeserver2\images\image2.jpg";
HD1 : $fsize = round(filesize($image2)/1024);
En nu krijg ik hier dus ook resultaat.

Ik hoop dat het nu wat duidelijker is en dat er mensen zijn die hier wat aan hebben.

Acties:
  • 0 Henk 'm!

Verwijderd

Als ik het probleem moet analyzeren aan de hand van de text die je geschreven hebt ziet het er in mijn ogen heel logisch uit.
De alias die jij hebt aangemaakt werkt gewoon in omnihttpd, de http requests die omnihttpd binnenkrijgt worden aan het hand van de alias naar de juiste locatie op je harde schijf gestuurd.
Maar deze alias van omnihttpd heeft geen effect in php. Vandaar dat bewerkingen in php om een bestand te openen via een bestandsnaam die de alias van omnihttpd gebruikt niet werkt, want deze alias bestaat helemaal niet in php. Vandaar dat:
HD1 : $image2 = /hd2/images/image2.jpg;
HD1 : $size=getimagesize($image2);
niet werkt. In php bestaat de alias (of directory, want zo ziet php het gewoon) helemaal niet. Als je dan probeert om de image2.jpg op te halen via http://nomo.homeip.net/hd2/images/image2.jpg, dan werkt het gewoon ja, want dan laat je php gewoon een http request uitvoeren op je omnihttpd om die file op te halen en deze kan je dan verder bewerken.

Ik hoop dat ik dit een beetje duidelijk uit heb kunnen leggen, maar het uiteindelijke probleem is gewoon dat de alias die in omnihttpd wel werkt, dat deze niet werkt in php en jij nam aan van wel, vandaar dat je deze fout kreeg. als je de image dan via een harde locatie (g:\homeserver2\images\image2.jpg) of via een http request (http://nomo.homeip.net/hd2/images/image2.jpg) opvraagt, dan werkt alles zoals het moet ja.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe zit het met de php.ini file?
Valt daar niet wat te truuken?
"include_path" of "doc_root" of ...?

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
offtopic:
Waarom post je twee keer dezelfde URL?


Er zijn twee problemen met het gebruik van hard links. Ten eerste (en meest belangrijk) kun je alleen hard links naar files maken en dus niet naar een directory.

Ten tweede vermoed ik dat het onmogelijk is om een hard link te maken op een partitie die naar een ander bestand op een andere partitie verwijst, omdat op die manier de FAT's van de partities niet meer onafhankelijk zijn. Dit laatste kan ik uit de documentatie niet opmaken, maar als deze beperking niet bestaat, ben ik erg benieuwd hoe ze dit technisch opgelost hebben.

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:18

pietje63

RTFM

Ik vind dit probleem raar want ik heb thuis 2 computers naast elkaar staan één is mijn persoonlijke server met onder andere een apache/php/mysql server die alleen via mijn pc te benaderen is.

Het zijn 2 windows computers en ik heb een directory "foto's" op mijn computer geshared en die kan ik vanaf mijn server via php bereiken; dus dan moet een andere harde schijf toch even makkelijk gaan?

Het verschil is misschien dat ik volledige adres opgeef (//thomaspc/fotos/...) en dat ik overal de rechten goed heb ingesteld..

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pietje63 schreef op 02 augustus 2003 @ 23:10:
Ik vind dit probleem raar want ik heb thuis 2 computers naast elkaar staan één is mijn persoonlijke server met onder andere een apache/php/mysql server die alleen via mijn pc te benaderen is.
Ik maak gebruik van omnihttpd.
Het verschil is misschien dat ik volledige adres opgeef (//thomaspc/fotos/...) en dat ik overal de rechten goed heb ingesteld..
Ik zou je willen vragen om een simpele test te willen uit voeren met een test php file. Ik ben dan benieuwd of het werkt?

"test.php" op de default HD waar je 1ste index.php/html staat.
PHP:
1
2
3
4
5
<?
$foto = "//thomaspc/fotos/foto.jpg";
$size = getimagesize($foto);
echo "Size = ",$size,"<br>\n";
?>


Als het goed is krijg je nu een error. :X

[ Voor 4% gewijzigd door Verwijderd op 03-08-2003 12:33 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

never mind... volgende keer niet je quotes vergeten

iedereen krijgt hier een error bij:
PHP:
1
$foto = //thomaspc/fotos/foto.jpg;
;)

PS, probeer zelf dit eens:
PHP:
1
$foto = "\\thomaspc\fotos\foto.jpg";
:)

[ Voor 163% gewijzigd door Spider.007 op 03-08-2003 12:45 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 08:18

pietje63

RTFM

Ik zal het komende week proberen (vind het wel een interessant geval) maar zit nu in mijn ouderlijk hiusen heb hier geen privat server..

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
Spider.007 schreef op 03 augustus 2003 @ 12:43:
iedereen krijgt hier een error bij:
PHP:
1
$foto = //thomaspc/fotos/foto.jpg;
;)
Dat gaat ook helemaal fout, omdat de / in een expressie gewoon de division operator is en dus niet zonder quotes in een string mag voorkomen.
PS, probeer zelf dit eens:
PHP:
1
$foto = "\\thomaspc\fotos\foto.jpg";
:)
Dat werkt zeker niet, want nu vergeet je je backslashes te escapen. De string die je invoer wordt nu iets als "\thomaspcfotosfoto.jpg" (ik weet niet precies wat PHP doet met backslashes voor onbekende karakters). Gebruik dus liever de variant met forward slashes (die is ook gewoon toegestaan onder Windows XP) of escape je slashes nog eens: "\\\\thomaspc\\fotos\\foto.jpg".

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Soultaker schreef op 03 August 2003 @ 18:03:
[...]

Dat gaat ook helemaal fout, omdat de / in een expressie gewoon de division operator is en dus niet zonder quotes in een string mag voorkomen.
Klopt; dit was de reden dat ik reageerde op NoMo; die dit had gepost. Terwijl ik hem corrigeerde paste hij ook zijn post aan :)
[...]

Dat werkt zeker niet, want nu vergeet je je backslashes te escapen. De string die je invoer wordt nu iets als "\thomaspcfotosfoto.jpg" (ik weet niet precies wat PHP doet met backslashes voor onbekende karakters). Gebruik dus liever de variant met forward slashes (die is ook gewoon toegestaan onder Windows XP) of escape je slashes nog eens: "\\\\thomaspc\\fotos\\foto.jpg".
Heb je gelijk in. Volgens mij wordt een backslash zonder betekenis (\q oid) niet geconvert ofzo. De variant met forward slashes vindt ik lelijk; mijn voorkeur zou zijn om enkele quotes te gebruiken
PHP:
1
$foto = '\\thomaspc\fotos\foto.jpg';

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate

Pagina: 1