I'm a bit baffled why you'd consider accessing the database directly - you should be using the file API.
File API handbook section is at http://drupal.org/node/555118 You should use the File API to create managed or unmanaged file entries, and not worry more about how they are stored in the db. A module that might help you is http://drupal.org/project/filefield_sources. In fact, it might already do everything you need. Anyway, it allows you to add a file from any source. It *is* complicated trying to allow access to a file that is not in your public or private files section. The idea of having drupal:// didn't get in. -Randy On Sun, May 1, 2011 at 8:21 PM, Peter Anderson <[email protected]> wrote: > Hi everyone, > > I'm upgrading my D6 module to D7 and am trying to work out the best way to > implement the new File API... > My module allows users to either upload a file from their computer, or > enter the relative path of a file already on the server (e.g. > /sites/default/themes/...). The relative path to this file is then stored in > the DB. > > I'm not sure what to store in the database in the D7 version: the file URI > (public://my_file.png) or the relative path as per the D6 version > (/sites/default/files/my_file.png). > The reasons I'm not sure are as follows: > - Storing the File URI seems to be the obvious choice as that seems to be > the default now > - But how would I allow users to enter the path of a file already on the > server in, say, their theme folder? > - Storing the relative path is how I used to do it, so is easier > - But then how do I change a relative path to a File URI when required > (e.g. by the image_style_url() function)? > > Any assistance or advice would be much appreciated! > > -- > Kind regards, > Peter Anderson.http://panda.id.au > > -- Randy Fay Drupal Module and Site Development [email protected] +1 970.462.7450
